On Wed, 6 Oct 2004 14:37:58 -0700, Eric Wulff <[EMAIL PROTECTED]> wrote:
> 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">

<Resource name="jdbc/test_connection" auth="Container"
type="javax.sql.DataSource"/>
is missing

>     <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]
> 
> 


-- 
:)
Atishay Kumar
Btech, SEM VII
DA-IICT
Gandhinagar - 382009
India
ph: +91 9825383948
/****************************************************************************
 * Learn the rules as you would need them to break them properly *
 ****************************************************************************/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to