I have gone over some of the tomcat docs and googled errors but there is SO much information covering JNDI, connection pooling, and Datasources. Can someone review the info below and consult or point me in the right direction? Although I feel I'm missing something obvious, I can't find out what's wrong with my set-up.
thx Eric System: Tomcat 5 on Fedora Core 2 connecting to a db on an Informix Dynamic Server 9.4 on Windows Server -I am able to connect to my db via typical JDBC DriverManager.getConnection(). This leads me to believe that my informix jdbc driver is in the correct place... CATALINA_HOME/common/lib -I have a Context set up in my server.xml per examples in a text tutorial I'm referencing Below listed... -errors -web.xml -server.xml <Context> (minus connection actual values) -.java exception/errors: -Exception: org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' SQL state: null Error code: 0 -stack trace reveals this, but I can't see why since I have the driver in the correct directory... java.sql.SQLException: No suitable driver at java.sql.DriverManager.getDriver(DriverManager.java:243) at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:773) web.xml: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <servlet> <servlet-name>Test Connection Pooling</servlet-name> <servlet-class>TestConnectionPooling</servlet-class> </servlet> <servlet-mapping> <servlet-name>Test Connection Pooling</servlet-name> <url-pattern>/testConnectionPooling</url-pattern> </servlet-mapping> <resource-ref> <res-ref-name>jdbc/test_connect</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> </web-app> server.xml <Context>: <Context path="/testConnectionPooling" docBase="testConnectionPooling" debug="0" reloadable="true"> <ResourceParams name="jdbc/test_connect"> <parameter> <name>username</name> <value>informix</value> </parameter> <parameter> <name>password</name> <value>informix</value> </parameter> <parameter> <name>driverClassName</name> <value>com.informix.jdbc.IfxDriver</value> </parameter> <parameter> <name>url</name> <value>jdbc:informix-sqli://url:port/dbName:INFORMIXSERVER=serverName</value> </parameter> </ResourceParams> </Context> .java: import java.io.*; import java.sql.*; // -Must import javax.naming use JNDI which is required to implement data // resource references and hence connection pooling. import javax.naming.*; import javax.sql.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; public class TestConnectionPooling extends HttpServlet { private DataSource dataSource; public void init(ServletConfig config) throws ServletException { try { Context init = new InitialContext(); // don't know what the 'java:comp/env' refers to Context ctx = (Context) init.lookup("java:comp/env"); // I know "jdbc/conversion must match the web.xml res-ref-name of the web.xml but don't know what the path really refers to dataSource = (DataSource) ctx.lookup("jdbc/test_connect"); } catch (NamingException ex) { throw new ServletException("Cannot retrieve java:comp/env/jdbc/test_connect",ex); } } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); Connection connection = null; out.println ("<HTML><HEAD><TITLE>Test Connection Pooling</TITLE></HEAD><BODY>"); out.println("<H1>Customer Name Query</H1>"); try { synchronized(dataSource) { connection = dataSource.getConnection(); } out.println("<br>"); out.println("<strong>Loaded informix driver successfully via server.xml.</strong>" + "Now attempting db connection."); out.println("<br>"); PreparedStatement pstmt = connection.prepareStatement("SELECT blah FROM blah blah"); ResultSet results = pstmt.executeQuery(); if (!results.next()) { throw new SQLException("No data returned for some reason"); } out.println("<br>"); while(results.next()) { out.println("<tr><td>" + results.getString("blah") + "</td></tr>"); } } catch (Exception ex) { out.println("<br>"); out.println("Exception: " + ex); if(ex instanceof SQLException) { SQLException sqlex = (SQLException) ex; out.println("<br>"); out.println("SQL state: "+sqlex.getSQLState()+"<BR>"); out.println("<br>"); out.println("Error code: "+sqlex.getErrorCode()+"<BR>"); out.println("<br><br>"); sqlex.printStackTrace(out); out.println("<br><br>"); } } finally { try { connection.close(); } catch (Exception ex) {} } out.println ("</BODY></HTML>"); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]