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

Quick Links to:
{toc:minLevel=3|maxLevel=3}

h3. *Converting an OC4J WAR application to a Tomcat 7 WAR application*
{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 who's artifact is a WAR. These instructions should make a web application run either in Tomcat 7 or OC4J.*
{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*.&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.&nbsp;&nbsp;In this example the value is *jdbc/MitsisDS* (the default for most ES web apps).&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 ojdbc-1.4.jar.
## Right click on the ojdbc-1.4.jar and select *Maven > Exlude Maven Artifact...*