tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Short, Dave" <dave.sh...@pfizer.com>
Subject RE: JNDI Datasource is null, again
Date Fri, 25 Oct 2002 15:55:36 GMT
I noticed you have the following code in your server.xml file within your
w2k context:

<Resource name="jdbc/w2k" auth="Container" type="javax.sql.DataSource"/>

I don't have this in mine.  Not sure if it's needed.  I can connect just
fine without it.  Take it out and see if it works.

-----Original Message-----
From: "Steltner, Jörn HTC/DE/ESS" [mailto:Joern.Steltner@hochtief.de]
Sent: October 25, 2002 8:38 AM
To: 'tomcat-user@jakarta.apache.org'
Subject: JNDI Datasource is null, again


Hallo,

I read that the problem was described many times here, but I cecked all
solutions and got the error again. Please may someone give me a hint.
Attached my config and the exception print. I don't know where I should look
...

I use Tomcat 4.1.12 and J2SDK 1.4.1_01.


my code:

/*
 * dbGetInvoices.java
 *
 * Created on 12. August 2002, 15:14
 */
import javax.naming.*;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.sql.*;
import java.io.*;
import java.sql.*;
import java.util.*;
import java.text.*;
/**
 *
 * @author  steltner
 * @version
 */


public class dbGetInvoices extends HttpServlet {

    public void init(ServletConfig config) throws ServletException 
    {
        super.init(config);
    }
    
    /** Destroys the servlet.
     */
    public void destroy() {
    }
    
    /** Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "dbGetInvoices";
    }

    /** Processes requests for both HTTP <code>GET</code> and
<code>POST</code> methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request,
HttpServletResponse response)
    throws ServletException, java.io.IOException {
        response.setContentType("text/html");
        java.io.PrintWriter out = response.getWriter();
        out.close();
    }
    
    /** Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse
response)
    throws ServletException, java.io.IOException 
    {
       PrintWriter out     = response.getWriter();
       HttpSession session = request.getSession(true);
       
       String  no_user = (String)session.getAttribute("logon.isUserNo");
       String  no_role = (String)session.getAttribute("logon.isRole");
      
       if ((null == no_user) || (null == no_role))
       {
          out.println("<p><strong>Sie sind zur Zeit nicht angemeldet!");
       }
       else
       {
           // wenn Projektteam Mitglied
           if ( 0 == no_role.compareTo("3"))
               GetInvoices( out, no_user );
       }
       out.println("</body></html>");
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse
response)
    throws ServletException, java.io.IOException {
        processRequest(request, response);
    }

    protected void GetInvoices( PrintWriter out, String no_user )
    {
       ....................
       GetInvoiceContents(out,no_user);
       ......................
    }
    
    protected void GetInvoiceContents( PrintWriter out, String no_user )
    {
       try
       {
          Context initCtx = new InitialContext();
          DataSource ds =
(DataSource)initCtx.lookup("java:comp/env/jdbc/w2k");


          // at this point ds is equal null :-(( 

          if (null != ds) 
          {
             Connection conn = ds.getConnection();
              
             if (null != conn)  
             {
                 Statement st = conn.createStatement();
                 ResultSet rs = st.executeQuery("select description from
price_comparison where no_price_comparison=1");
       
                 String    s  = "<tr bgcolor=#f0f0f0>";
                 int       i  = 0;
                 double    d  = 0.0;

                 // number formating
                 Locale       myLocale    = new Locale("de", "Germany");
                 NumberFormat myFormatter =
NumberFormat.getNumberInstance(myLocale);
                 myFormatter.setGroupingUsed( true );
                 myFormatter.setMinimumFractionDigits(2);
                 myFormatter.setMaximumFractionDigits(2);

                 while (rs.next())
                 {
                     // do something
                 } 
                     
                 st.close();                  
                 conn.close();
             }
          }
          
       }
       catch(Exception e) {
            e.printStackTrace();
       }
       
    }
          
}
    


my server.xml

        <!-- Tomcat w2k Context -->
        <Context path="" docBase="w2k" debug="9" reloadable="true"
crossContext="true">
          <Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_w2k_log." suffix=".txt" timestamp="true"/>
          <Resource name="jdbc/w2k" auth="Container"
type="javax.sql.DataSource"/>

          <ResourceParams name="jdbc/w2k">
           <parameter>
             <name>factory</name>
             <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
           </parameter>

           <!-- Maximum number of dB connections in pool. Make sure you
                configure your mysqld max_connections large enough to handle
                all of your db connections. Set to 0 for no limit.
           -->
           <parameter>
             <name>maxActive</name>
             <value>100</value>
           </parameter>

           <!-- Maximum number of idle dB connections to retain in pool.
                Set to 0 for no limit.
           -->
           <parameter>
             <name>maxIdle</name>
             <value>30</value>
           </parameter>

           <!-- Maximum time to wait for a dB connection to become available
                in ms, in this example 10 seconds. An Exception is thrown if
                this timeout is exceeded.  Set to -1 to wait indefinitely.
           -->
           <parameter>
             <name>maxWait</name>
             <value>10000</value>
           </parameter>

           <!-- MySQL dB username and password for dB connections  -->
           <parameter>
             <name>username</name>
             <value>web</value>
           </parameter>
           <parameter>
             <name>password</name>
             <value>access</value>
           </parameter>

           <!-- Class name for mm.mysql JDBC driver -->
           <parameter>
             <name>driverClassName</name>
             <value>org.gjt.mm.mysql.Driver</value>
           </parameter>

           <!-- The JDBC connection url for connecting to your MySQL dB.
                The autoReconnect=true argument to the url makes sure that
the
                mm.mysql JDBC Driver will automatically reconnect if mysqld
closed the
                connection.  mysqld by default closes idle connections after
8 hours.
           -->
           <parameter>
             <name>url</name>
 
<value>jdbc:mysql://localhost:3306/w2k?autoReconnect=true</value>
           </parameter>
    
           <parameter>
             <name>removeAbandoned</name>
             <value>true</value>
           </parameter>

           <parameter>
             <name>removeAbandonedTimeout</name>
             <value>60</value>
           </parameter>

           <parameter>
             <name>logAbandoned</name>
             <value>true</value>
           </parameter>
          </ResourceParams>
        </Context>



my web.xml

<!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>
  <display-name>w2k-Projektdokumentation</display-name>
  <description>w2k-Projektdokumentation</description>
  <context-param>
    <param-name>J. Steltner</param-name>
    <param-value>joern@steltner.com</param-value>
    <description>
      Please send a mail.
    </description>
  </context-param>


  <servlet>
    <servlet-name>dbGetInvoices</servlet-name>
    <description>Print table with all invoices.</description>
    <servlet-class>dbGetInvoices</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>dbGetInvoices</servlet-name>
    <url-pattern>/dbGetInvoices</url-pattern>
  </servlet-mapping>

  <session-config>
     <session-timeout>30</session-timeout>
  </session-config>

  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
  
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/w2k</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

</web-app>


my catalina.out:

java.sql.SQLException: Cannot load JDBC driver class 'null'
	at
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.jav
a:529)
	at
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3
12)
	at dbGetInvoices.GetInvoiceContents(dbGetInvoices.java:149)
	at dbGetInvoices.GetInvoices(dbGetInvoices.java:127)
	at dbGetInvoices.doGet(dbGetInvoices.java:71)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
)
	at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	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.invok
eNext(StandardPipeline.java:643)
	at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	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:405)
	at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:380)
	at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
	at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:533)
	at java.lang.Thread.run(Thread.java:536)



Regards Joern




--
To unsubscribe, e-mail:
<mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail:
<mailto:tomcat-user-help@jakarta.apache.org>

--
To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>


Mime
View raw message