Converting an OC4J WAR appilication application to a Tomcat 7 WAR application Warning |
---|
Any Maven project who's artifact is a JAR is Tomcat 7 complatible 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. |
- Run Eclipse and open the Maven project that you want to contert 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 |
---|
<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>
| In each of the <pattern> tags, remove the leading /** so that the above now looks similar to the following: Code Block |
---|
<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>
| 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 |
---|
<bean id="mitsisDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value="jdbc/MitsisDS" />
</bean>
| Remember the value of the name property. In this example the value is jdbc/MitsisDS. This value will be the Resource Definition name used throughout the remainder of this page. Change the jndiName value as shown below Add a new property, resourceRef,to the bean definition:
Code Block |
---|
<bean id="mitsisDataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiName" value=" | java:comp/env/jdbc/MitsisDS" />
<property name="resourceRef" value="true" />
</bean>
|
by prefixing the existing jndiName value with java:comp/env/. 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 web.xml for editing and add the following after the <servlet-mapping> tags and before the <welcome-file-list> tag.
Code Block |
---|
<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>
| 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 Block |
---|
<Resource name="jdbc/MitsisDsMitsisDS"
auth="Container"
type="javax.sql.DataSource"
driverClassName="oracle.jdbc.OracleDriver"
url="jdbc:oracle:thin:@//earth-vault-2.mit.edu:1523/sundev2"
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"/>
| 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 Block |
---|
<dependency>
<groupId>oracle</groupId>
<artifactId>ojdbc</artifactId>
<version>1.4</version>
<scope>test</scope>
</dependency>
| and add the following dependency: Code Block |
---|
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.3</version>
<scope>test</scope>
</dependency>
| 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...
|