A couple of thoughts:
1. There should only be one mysql driver .jar file and it should be in
common/lib. Please remove the one in your WEB-INF/lib directory
2. The driver org.gjt.mm.mysql.Driver is depricated (has been for a VERY
long time). Update it to com.mysql.jdbc.Driver.
3. You might want to consider obscuring your database password when
posting to the list.
Not sure about the bean factories or the value resources as I don't work
with them.
--David
Mike Jackson wrote:
Hi folks,
I have been trying to get to grips with JNDI but cannot get data
sources or bean factories - using the standard examples in the Tomcat
user doc - but cannot get hardly anything to work.
I have the following declared in TOMCAT/webapps/axis/WEB-INF/web.xml
after the <session-mapping/> element and before the <mime-mapping/>
element.
<resource-ref>
<description>Data Source Example</description>
<res-ref-name>jdbc/mikeDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
<resource-env-ref>
<resource-env-ref-name>simpleValue</resource-env-ref-name>
<resource-env-ref-type>java.lang.Integer</resource-env-ref-type>
</resource-env-ref>
<resource-env-ref>
<resource-env-ref-name>value/someValue</resource-env-ref-name>
<resource-env-ref-type>java.lang.String</resource-env-ref-type>
</resource-env-ref>
<env-entry>
<env-entry-name>value/someDirectValue</env-entry-name>
<env-entry-value>10</env-entry-value>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
<resource-env-ref>
<description>Object factory for MyBean instances</description>
<resource-env-ref-name>bean/MyBeanFactory</resource-env-ref-name>
<resource-env-ref-type>com.mycompany.MyBean</resource-env-ref-type>
</resource-env-ref>
In TOMCAT/conf/server.xml there is...
<Server...>
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
I have the following TOMCAT/webapps/axis/META-INF/context.xml file:
<Context debug="0"
docBase="/home/michaelj/test/tomcatAxis/webapps/axis" reloadable="true">
<Resource name="jdbc/mikeDB"
auth="Container"
type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mikeDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>username</name>
<value>daitester</value>
</parameter>
<parameter>
<name>password</name>
<value>It35tda1</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>org.gjt.mm.mysql.Driver</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://coal.epcc.ed.ac.uk:3306/daitest</value>
</parameter>
</ResourceParams>
<Environment name="value/someValue"
value="10"
type="java.lang.String"
override="true"/>
<ResourceLink name="simpleValue"
global="simpleValue"
type="java.lang.Integer"/>
<Resource name="bean/MyBeanFactory" auth="Container"
type="com.mycompany.MyBean"/>
<ResourceParams name="bean/MyBeanFactory">
<parameter>
<name>factory</name>
<value>org.apache.naming.factory.BeanFactory</value>
</parameter>
<parameter>
<name>bar</name>
<value>23</value>
</parameter>
</ResourceParams>
</Context>
I have my database driver in both TOMCAT/common/lib and
TOMCAT/webapps/axis/WEB-INF/lib and my example bean in
TOMCAT/common/classes and TOMCAT/webapps/axis/WEB-INF/classes.
Now when I run the following within a web service
Context initCtx = new InitialContext();
Context envCtx = (Context)initCtx.lookup("java:comp/env");
the context is accessed fine. But when I then do ctx.lookup() for each
of my declared resources:
jdbc/mikeDB
bean/MyBeanFactory
value/someValue
value/someDirectValue
simpleValue
Then I get the following
-For jdbc/mikeDB I get
object [EMAIL PROTECTED] as expected.
-However running getConnection() on this throws
"Cannot create JDBC driver of class '' for connect URL 'null'"
-For bean/MyBeanFactory
value/someValue
simpleValue
I get:
Cannot create resource instance
-The only one that works is value/someDirectValue for which
I get "10" as expected.
Can anyone offer any clue as to why this is going wrong? Is there some
piece of configuration I'm missing or have done wrong? Most of these
examples were cut and paste from the user doc so I'm suprised that
virtually nothing is returned from lookup() sucessfully.
Thanks,
mike
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]