I'm having trouble moving my webapp from Tomcat 5.0 to 5.5.  The dataSource in 
Context.xml seems to be the issue.
 
According to the 'JNDI how-to' documentation for 5.0 and 5.5, it looks like the 
'<ResourceParams>' tag has been removed from the Context.xml and instead you 
can now supply arbitrary attributes to the <Resource> tag itself.
 
In 5.0, my Context.xml looked like this and it worked fine:
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="true" docBase="myapp" path="/myapp">
  <Resource name="jdbc/db1" auth="Container" 
  type="oracle.jdbc.pool.OracleDataSource" />
  <ResourceParams name="jdbc/db1">
    <parameter>
      <name>factory</name>
      <value>oracle.jdbc.pool.OracleDataSourceFactory</value>
    </parameter>
    <parameter>
      <name>driverClassName</name>
      <value>oracle.jdbc.driver.OracleDriver</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:oracle:thin:@xx:xx:xx</value>
    </parameter>
    <parameter>
      <name>user</name>
      <value>xx</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>xx</value>
    </parameter>
  </ResourceParams>
</Context>
 
...note that oracle's factory requires "user", not "username".    

 
Moving to 5.5, I changed it to:
 
<?xml version="1.0" encoding="UTF-8"?>
<Context antiResourceLocking="true" docBase="myapp" path="/myapp">
  <Resource auth="Container" 
  driverClassName="oracle.jdbc.driver.OracleDriver" 
  factory="oracle.jdbc.pool.OracleDataSourceFactory" 
  name="jdbc/db1" 
  password="xxx" 
  type="oracle.jdbc.pool.OracleDataSource" 
  url="jdbc:oracle:thin:@xx:xx:xx" 
  user="xx"/>
</Context>

...this new Context.xml doesn't work.  I get the following:
javax.naming.NamingException: Cannot create resource instance
 at 
org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:132)
 at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)
 at org.apache.naming.NamingContext.lookup(NamingContext.java:792)
 
....any ideas?  Almost seems as if the "factory" attribute of <Resource> is not 
being used.
 
thanks
tk_

Reply via email to