Thanks Achal, that really helped. -----Original Message----- From: Prabhakar, Achal [mailto:[EMAIL PROTECTED] Sent: Sunday, June 15, 2003 8:36 PM To: Tarek M. Nabil Subject: RE: JNDI DataSource
The server.xml elements and attributes are documented here: http://jakarta.apache.org/tomcat/tomcat-4.0-doc/config/index.html Regards, -Achal -----Original Message----- From: Tarek M. Nabil To: Tomcat Users List Sent: 6/15/2003 8:04 AM Subject: RE: JNDI DataSource Hi everyone, I just managed to get this working. Obviously, it doesn't work if I put the <Resource> and <Resource-params> tags inside the <GlobalNamingResources> element, even if I create another <Resource> entry inside the <Context> element. Someone once mentioned that maybe the tag inside the <Context> element should be the <Resource-ref> tag, not the <Context> tag, but I really didn't know the syntax for this one, so I couldn't try it. Now, it works only if I put both the <Resource> and <Resource-params> tags inside the <Context> element of my application. I find this rather limiting, because most of the time, I don't wanna create a <Context> element for my application. I think there must be some other way to do this, but I guess I don't know it. The wierdest thing is, I DIDN'T need to add a <Resource-ref> element in my web.xml!!!!!!!! What's this entry for anyway? One other question I have is, do we have some sort of documentation or a DTD for this server.xml file that we check for available elements and their attributes. Thanks a lot for your help. Tarek Nabil -----Original Message----- From: Tarek M. Nabil Sent: Sunday, June 15, 2003 12:45 PM To: 'Tam, Michael'; 'Tomcat Users List' Subject: RE: JNDI DataSource Thanks Micheal. Actually, I did put the jar that contains the driver in $CATALINA_HOME/common/lib. So, I guess I'll just try what you recommended and if it works, then I think I'll switch to a different driver and test to see if this is a driver specific thing. Maybe no one tried that driver ever before. Thanks, Tarek Nabil -----Original Message----- From: Tam, Michael [mailto:[EMAIL PROTECTED] Sent: Thursday, June 12, 2003 9:18 PM To: 'Tomcat Users List' Subject: RE: JNDI DataSource You didn't mention about your jdbc jar file in your post and maybe you should check where did you put the jar file. In addition, you may want to try a simple jsp to use driver manager to obtain a connection to see if your jdbc lib is loaded. Cheers, Michael -----Original Message----- From: Tarek M. Nabil [mailto:[EMAIL PROTECTED] Sent: Thursday, June 12, 2003 10:57 AM To: Phillip Qin; Tomcat Users List Subject: RE: JNDI DataSource Hi Philip, I checked, and the URL thing is driver specific. For the driver I'm using, the format is "jdbc:as400:machineName" and that's what I'm using. The strange thing is the error message "Cannot load JDBC driver class 'null'". Why does Tomcat see the dirver as null, although I have specified it in the ResourceParams. Thanks, Tarek Nabil -----Original Message----- From: Phillip Qin [mailto:[EMAIL PROTECTED] Sent: Thursday, June 12, 2003 8:19 PM To: 'Tomcat Users List' Subject: RE: JNDI DataSource Replace your url with fully qualified url, in Oracle I use jdbc:oracle:thin:@myhost.myudomain.com:port:sid -----Original Message----- From: Tarek M. Nabil [mailto:[EMAIL PROTECTED] Sent: June 12, 2003 1:09 PM To: 'Tomcat Users List' (E-mail) Subject: JNDI DataSource Hi, I'm trying to setup a JDBC DataSource on Tomcat 4.1.24. I performed the steps in the documentation: 1- Added this part to the GlobalNamingResources section of the server.xml <Resource name="jdbc/as400" scope="Shareable" type="javax.sql.DataSource" auth="Container"/> <Resource name="UserDatabase" scope="Shareable" type="org.apache.catalina.UserDatabase" auth="Container" description="User database that can be updated and saved"/> <ResourceParams name="jdbc/as400"> <parameter> <name>maxWait</name> <value>5000</value> </parameter> <parameter> <name>maxActive</name> <value>8</value> </parameter> <parameter> <name>url</name> <value>jdbc:as400:AS400</value> </parameter> <parameter> <name>password</name> <value>access2k</value> </parameter> <parameter> <name>driverClassName</name> <value>com.ibm.as400.access.AS400JDBCDriver</value> </parameter> <parameter> <name>maxIdle</name> <value>4</value> </parameter> <parameter> <name>username</name> <value>DBA</value> </parameter> </ResourceParams> <ResourceParams name="UserDatabase"> <parameter> <name>factory</name> <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> </parameter> <parameter> <name>pathname</name> <value>conf/tomcat-users.xml</value> </parameter> </ResourceParams> 2- I added this to my web.xml <resource-ref> <description> Resource reference to a factory for java.sql.Connection instances that talk to an AS400 database </description> <res-ref-name> jdbc/as400 </res-ref-name> <res-type> javax.sql.DataSource </res-type> <res-auth> Container </res-auth> </resource-ref> 3- I put this in a JSP <%@ page import="javax.naming.*, java.sql.*, javax.sql.*" %> <% Context initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); DataSource ds = (DataSource) envCtx.lookup("jdbc/as400"); Connection conn = ds.getConnection(); conn.close(); %> And Still, I get the following error when accessing the JSP type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: Cannot load JDBC driver class 'null' at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja va:2 54) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tion FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241 5) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :172 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:59 4) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onne ction(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56 5) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .jav a:619) at java.lang.Thread.run(Thread.java:484) root cause javax.servlet.ServletException: Cannot load JDBC driver class 'null' at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContex tImp l.java:536) at org.apache.jsp.test_jsp._jspService(test_jsp.java:61) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.ja va:2 10) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica tion FilterChain.java:247) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilt erCh ain.java:193) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv e.ja va:256) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv e.ja va:191) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:241 5) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java :180 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherVa lve. java:171) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:641) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java :172 ) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:641) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java :174) at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.i nvok eNext(StandardPipeline.java:643) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:4 80) at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:59 4) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processC onne ction(Http11Protocol.java:392) at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:56 5) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool .jav a:619) at java.lang.Thread.run(Thread.java:484) ------------------------------------------------------------------------ ---- ---- Any help is appreciated. Thanks, Tarek M. Nabil --------------------------------------------------------------------- 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] --------------------------------------------------------------------- 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]