Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0
Info

Help is available by sending an email to csf-support@mit.edu
Have any suggestion on how improve this wiki?  Please give us your feedback at csf-support@mit.edu

Panel
Wiki Markup

Quick Links to:

{toc
:minLevel
=3
|maxLevel
=3}
Panel
Wiki Markup


h3. *Converting an OC4J WAR application to a Tomcat 7 WAR application
Warning
Any Maven project
*
{warning}
Any Maven project who's artifact is a JAR is Tomcat 7 compatible and no conversion is required.
  
The following instructions are for Maven project
  
*The following instructions are for Maven project who's artifact is a WAR. These instructions should make a web application run either in Tomcat 7 or OC4J.
  • Run Eclipse and open the Maven project that you want to convert to a Tomcat 7 application.
  • Open your project's decorators.xml file for editing.  The decorators.xml file is located in your project's WEB-INF directory.
    Your decorator.xml should look similar to the following:
    Code Block
    *
    {warning}
    # Run Eclipse and open the Maven project that you want to convert to a Tomcat 7 application.
    # Open your project's *decorators.xml* file for editing.  The decorators.xml file is located in your project's WEB-INF directory.
    Your decorator.xml should look similar to the following:
    {code}
    <decorators defaultdir="/WEB-INF/decorators">
        <decorator name="ajax" page="ajax.jsp">
            <pattern>/**/ajax/*</pattern>
        </decorator>
        <decorator name="ssb" page="ssb.jsp">
            <pattern>/**/*</pattern>
        </decorator>
    </decorators>
    
    {code}
    In each of the <pattern> tags, remove the leading */*\*\* so that the above now looks similar to the following:
    
    {code
    }
    <decorators defaultdir="/WEB-INF/decorators">
        <decorator name="ajax" page="ajax.jsp">
            <pattern>/*ajax*</pattern>
        </decorator>
        <decorator name="ssb" page="ssb.jsp">
            <pattern>/*</pattern>
        </decorator>
    </decorators>
    {code}
    
    When you are satisfied that everything is correct, *save* the changes.
    
    # Open your project's applicationContext xml that contains the *mitsisDataSource bean
    .  The mitsisDataSource bean should look similar to: Code Block
    *.&nbsp;&nbsp;The *mitsisDataSource bean* should look similar to:
    {code}
    <bean id="mitsisDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="jdbc/MitsisDS" />
    </bean>
    {code}
    
    Remember the value of the *name* property.
      In this example the value is
    &nbsp;&nbsp;In this example the value is *jdbc/MitsisDS* (the default for most ES web apps).
      This value will be the Resource Definition name used throughout the remainder of this page.
    Add a new property, resourceRef,to the bean definition: Code Block
    &nbsp;&nbsp;This value will be the *Resource Definition name* used throughout the remainder of this page.
    Add a new property, *resourceRef*,to the bean definition:
    {code}
    <bean id="mitsisDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
       <property name="jndiName" value="jdbc/MitsisDS" />
       <property name="resourceRef" value="true" />
    </bean>
    {code}
    
    Don't forget to use your *Resource Definition name* in place of *jdbc/MitsisDS*.

    
    When you are satisfied that everything is correct, *save* the changes.
    
    # Open your project's *log4j.xml* for editing and find the 2 lines similar to the following (*att* is the project's application context root):
    
    {code
    }
    <param name="File" value="log/att.log" />
    <param name="File" value="log/hbn-att.log" />
    
    {code}
    and change them to:
    
    {code
    }
    <param name="File" value="${logs.dir}/att/att.log" />
    <param name="File" value="${logs.dir}/att/hbn-att.log" />
    {code}
    
    When you are satisfied that everything is correct, *save* the changes.
    
    # Open your project's web.xml for editing and add the following after the <servlet-mapping> tags and before the <welcome-file-list> tag.
    
    {code
    }
    <resource-ref>
        <description>Oracle Datasource</description>
        <res-ref-name>jdbc/MitsisDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
    
    {code}
    Don't forget to use your *Resource Definition name* in place of *jdbc/MitsisDS*.

    
    When you are satisfied that everything is correct, *save* the changes.
    
    # Open your Tomcat 7 server's context.xml, located at $\{CATALINA_HOME}/conf/context.xml, and verify that a *Resource Definition* for your application exists.

    
    If the Resource Definition does not exits, add the following anywhere between the <context> and </context> tags:
    
    {code
    }
    <Resource name="jdbc/MitsisDS"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.OracleDriver"
       url="jdbc:oracle:thin:@//earth-vault-2.mit.edu:1523/sundev11"
       username="XXXXXXXX"
       password="YYYYYYYY"
       maxActive="20"
       maxIdle="10"
       maxWait="-1"
       removeAbandoned="true"
       removeAbandonedTimeout="30"
       logAbandoned="true" />
    
    <ResourceLink global="jdbc/MitsisDS" name="jdbc/MitsisDS" type="javax.sql.DataSource"/>
    {code}
    
    Don't forget to use your *Resource Definition name* in place of *jdbc/MitsisDS*.

    
    When you are satisfied that everything is correct, *save* the changes.
    
    # Open the project's pom.xml and delete the following dependency:
    
    {code
    }
    <dependency>
        <groupId>oracle</groupId>
        <artifactId>ojdbc</artifactId>
        <version>1.4</version>
        <scope>test</scope>
    </dependency>
    {code}
    
    and add the following dependency:
    
    {code
    }
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.3</version>
        <scope>test</scope>
    </dependency>
    
    {code}
    When you are satisfied that everything is correct, *save* the changes.
    
    # Search both Project Jar Dependencies and Project Test Jar Dependencies for any ojdbc-1.4.jar dependency and exclude the dependency.

    
    In Eclipse, this can be done by doing the following:
    
    ## Open a *Project Explorer View*, right click on your project and select *Maven > Update Dependencies...
    Expand Maven Dependencies and scroll through the dependencies until you find the
    *
    ## Expand *Maven Dependencies* and scroll through the dependencies until you find the ojdbc-1.4.jar.
    
    ## Right click on the ojdbc-1.4.jar and select *Maven > Exlude Maven Artifact...*