I got a similar result with Tomcat 5.0.9 when, within server.xml, I placed the <Resource> and <ResourceParams> elements inside a <DefaultContext> element in <Host>. I then referred to my named resource in web.xml in a <resource-ref> element. The advantage of this method is simpler application distribution: it does not require a user of your application to add <Context> and <ResourceLink> elements to his or her server.xml.
Note that I was unable to achieve the same result by adding the <Resource> and <ResourceParams> elements to <GlobalNamingResources> as O'Reilly's, "Tomcat: The Definitive Guide", and other documents suggest. By the way, I am also using SQL Server 2000 and Microsoft's JDBC driver. Derek -----Original Message----- From: King,Daniel [mailto:[EMAIL PROTECTED] Sent: September 19, 2003 3:06 PM To: Tomcat Users List Subject: RE: SOLUTION!! -- Cannot load JDBC driver class 'null' I see this come up a lot in this user list and others about Tomcat, so I want to share this information. Note that the solution described below allows you to access a global data source from all Web Applications, without putting the <Resource> or <ResourceParams> elements in each Web Application <Context>. For over a week, I have been fighting the problem of configuring a data source so that it can be accessed by multiple Web Applications. I finally got it to work with Tomcat 5.0.9, by following Paul's advise from 9/12/03. I had no luck with Tomcat versions 4.1.24 or 4.1.27. To make it work in Tomcat 5.0.9, I used the Tomcat Administration tool to add the data source. It puts the following two elements in the <GlobalNamingResources> element: 1. <Resource> 2. <ResourceParams> I am working SQLServer 2000, using Microsoft's JDBC driver (wonders never cease): <GlobalNamingResources> <Resource auth="Container" name="MyDataSource" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="MyDataSource"> !-- etc. --> <parameter> <name>password</name> <value>mypassword</value> </parameter> <parameter> <name>url</name> <value>jdbc:microsoft:sqlserver://111.111.111.111:1433;database=mydb</va lue> </parameter> <parameter> <name>driverClassName</name> <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value> </parameter> <!-- etc. --> <parameter> <name>username</name> <value>myusername</value> </parameter> </ResourceParams> </GlobalNamingResources> Then I added a <Context> element for my Web Application-- it is the first child of the <Host> element: <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" debug="0" displayName="Welcome to Tomcat" docBase="/usr/local/jakarta-tomcat-5.0.9/webapps/myWebApp" mapperClass="org.apache.catalina.core.StandardContextMapper" path="/myWebApp" privileged="false" reloadable="false" swallowOutput="false" useNaming="true" wrapperClass="org.apache.catalina.core.StandardWrapper"> <ResourceLink name="MyDataSource" global="MyDataSource" type="javax.sql.DataSource"/> </Context> Note that it was NOT necessary to add a <resource-ref> element to the web.xml for the Web Application. -----Original Message----- From: SANTOS, DANIEL (SBCSI) [mailto:[EMAIL PROTECTED] Sent: Fri 9/19/2003 11:20 AM To: '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]'; '[EMAIL PROTECTED]' Cc: '[EMAIL PROTECTED]' Subject: SOLUTION!! -- Cannot load JDBC driver class 'null' Using Sun JDK 1.4.1_02 on Win2k SP2 and Jakarta 4.1.27. The tutorial in the tomcat docs failed for me also with the Cannot load JDBC driver class 'null'. I banged my head and had to get stitches and an ice pack. After that I came back to the office and cleaned out my server.xml and web.xml completely. Then I went to http://localhost:8080/admin <http://localhost:8080/admin> , browsed to the context that I am writing my app in, the full path from the tree being "Tomcat Server/Service (Tomcat-Standalone)/Host (localhost)/Context(/myapp)/Resources/Data Sources". I added the data source from there specifying the JNDI name, driver class, URL, user and pass, etc. Then I did some tests with a jsp to make sure it was really in my context (you may have to restart tomcat, I did). Next I added the code back into my web.xml that is in the tutorial.... <resource-ref> <description>DB Connection</description> <res-ref-name>myData Source</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> And it works!!! I just have a new problem now of DBCP borrowObject failed: String index out of range: -1, I suppose I'll figure that out too... Good Luck and thanks to all who posted info on this, Daniel --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]