Avatar billede tokai Nybegynder
02. december 2008 - 16:34 Der er 9 kommentarer

fejl besked fra java database pool

Created MBeanServer with ID: c9d92c:11df8532262:-8000:tomcat:1
02-12-2008 16:31:17 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.37
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'nul

nogen der ved hvad der er galt
Avatar billede arne_v Ekspert
02. december 2008 - 17:00 #1
Der er et problem med konfigurationen af connection pool.

Jeg tror at der refereres til en pool hvor Tomcat ikke kan finde
konfigurationen med driver og connection url for.

Check for stave fejl, placering af konfigurations tags etc..
Avatar billede schwarz84 Nybegynder
02. december 2008 - 17:10 #2
Din log stopper midt i en sætning. Kan du ikke lige putte den næste linje ind her også?
Avatar billede tokai Nybegynder
02. december 2008 - 17:35 #3
Created MBeanServer with ID: c9d92c:11df86b4547:-8000:tomcat:1
02-12-2008 16:57:39 org.apache.coyote.http11.Http11BaseProtocol init
INFO: Initializing Coyote HTTP/1.1 on http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.37
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
    at fremtidportalen.servlets.Test.init(Test.java:56)
    at javax.servlet.GenericServlet.init(GenericServlet.java:213)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:880)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:768)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3484)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3710)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:777)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:760)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:538)
    at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:265)
    at org.apache.catalina.core.StandardHost.install(StandardHost.java:731)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:649)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:379)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:808)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:335)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1156)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:697)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1148)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:311)
    at org.apache.catalina.core.StandardService.start(StandardService.java:450)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:2213)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:484)
    at org.apache.catalina.startup.Catalina.execute(Catalina.java:371)
    at org.apache.catalina.startup.Catalina.process(Catalina.java:134)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:324)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:151)
Caused by: java.sql.SQLException: No suitable driver
    at java.sql.DriverManager.getDriver(DriverManager.java:243)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1143)
    ... 31 more
02-12-2008 16:57:43 org.apache.coyote.http11.Http11BaseProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
02-12-2008 16:57:44 org.apache.jk.common.ChannelSocket init
INFO: JK: ajp13 listening on /0.0.0.0:8009
02-12-2008 16:57:44 org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=0/109  config=null
Avatar billede tokai Nybegynder
02. december 2008 - 17:39 #4
package fremtidportalen.servlets;
import java.io.IOException;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.*;
import javax.sql.*;



import java.sql.*;

/**
* @version     1.0
* @author
*/
public class Test extends HttpServlet {

    /**
    * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

        super.doGet(req, resp);

    }

    /**
    * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

        super.doPost(req, resp);

    }

    /**
    * @see javax.servlet.GenericServlet#void ()
    */
    public void init() throws ServletException {
        String foo;
        int bar;
        try {
            Context ctx = new InitialContext();
            if (ctx == null)
                throw new Exception("Boom - No Context");

            DataSource ds =
                (DataSource) ctx.lookup("java:comp/env/jdbc/fremtid");

            if (ds != null) {
        Connection conn = ds.getConnection();
             
        if(conn != null)  {
            foo = "Got Connection "+conn.toString();
            Statement stmt = conn.createStatement();
         
        }
            }
               
           
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
Avatar billede tokai Nybegynder
02. december 2008 - 17:45 #5
<?xml version="1.0" encoding="UTF-8"?>
<!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 id="WebApp">
   
    <description>MySQL Test App</description>
    <servlet>
        <servlet-name>Test</servlet-name>
        <display-name>Test</display-name>
        <servlet-class>fremtidportalen.servlets.Test</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/fremtid</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>
   

</web-app>
Avatar billede arne_v Ekspert
02. december 2008 - 17:51 #6
Og hvor bliver resourcen defineret ?
Avatar billede tokai Nybegynder
02. december 2008 - 17:55 #7
resourcen i server.xml ?
Avatar billede tokai Nybegynder
02. december 2008 - 17:56 #8
<Context path="/Fremtidsportalen" docBase="Fremtidsportalen"
        debug="5" reloadable="true" crossContext="true">

  <Logger className="org.apache.catalina.logger.FileLogger"
            prefix="localhost_DBTest_log." suffix=".txt"
            timestamp="true"/>

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

  <ResourceParams name="jdbc/fremtid">
    <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>root</value>
    </parameter>
    <parameter>
    <name>password</name>
    <value>34ljdhsdjoh</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/fremtid?autoReconnect=true</value>
    </parameter>
  </ResourceParams>
</Context>
Avatar billede tokai Nybegynder
02. december 2008 - 18:36 #9
package fremtidportalen.servlets;
import java.io.IOException;
import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.naming.*;
import javax.sql.*;

import java.sql.Connection;



import java.sql.*;

/**
* @version     1.0
* @author
*/
public class Test extends HttpServlet {

    /**
    * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

        super.doGet(req, resp);

    }

    /**
    * @see javax.servlet.http.HttpServlet#void (javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
    */
    public void doPost(HttpServletRequest req, HttpServletResponse resp)
        throws ServletException, IOException {

        super.doPost(req, resp);

    }

    /**
    * @see javax.servlet.GenericServlet#void ()
    */
    public void init() throws ServletException {
        String foo;
        int bar;
        try {
            Context ctx = new InitialContext();
            if (ctx == null)
                throw new Exception("Boom - No Context");

            DataSource ds =
                (DataSource) ctx.lookup("java:comp/env/jdbc/fremtid");

           
            System.out.println("datasource = " + ds.toString());    her går det galt ->>  Connection con = ds.getConnection();
            System.out.println("connnection = " + con.toString());   
           
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester