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*. 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 *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}
<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...*
|