Avatar billede tokai Nybegynder
17. december 2008 - 13:55 Der er 9 kommentarer

kan ikke finde driver filen

[INFO] Http11BaseProtocol - Initializing Coyote HTTP/1.1 on http-8080
Starting service Tomcat-Standalone
Apache Tomcat/4.1.34
fejlbeskedCannot create JDBC driver of class '' for connect URL 'null'
[INFO] Http11BaseProtocol - Starting Coyote HTTP/1.1 on http-8080
[INFO] ChannelSocket - JK: ajp13 listening on /0.0.0.0:8009
[INFO] JkMain - Jk running ID=0 time=0/62  config=null

jeg har lagt mysql driveren i commons\lib

min connection pool ser således ud:
<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/TestDB"
              auth="Container"
              type="javax.sql.DataSource"/>

  <ResourceParams name="jdbc/TestDB">
    <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>vlot9024</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 darrich Novice
17. december 2008 - 15:01 #1
Prøv og angiv fuld sti til driveren i koden.
Avatar billede tokai Nybegynder
17. december 2008 - 15:09 #2
hvad mener du med den fulde sti til driveren, gider du give et eksempel
Avatar billede schwarz84 Nybegynder
17. december 2008 - 15:19 #3
Det giver ikke mening at angive en fuld sti. Man kan ikke give en sti til classloaderen. Din driver skal ligge i lib-mappen. Gør den det?
Avatar billede tokai Nybegynder
17. december 2008 - 15:24 #4
ja driveren ligger i lib mappen
Avatar billede tokai Nybegynder
17. december 2008 - 15:30 #5
i common\lib mappen
Avatar billede schwarz84 Nybegynder
17. december 2008 - 18:19 #6
den skal ligge i WEB-INF/lib mappen i din web applikation. Prøv også at udskifte org.gjt.mm.mysql.Driver med com.mysql.jdbc.Driver, hvis du har hentet den fra MySQL's hjemmeside.
Avatar billede tokai Nybegynder
24. december 2008 - 15:25 #7
er denne connection pool iorden
package test;
import java.sql.*;
import java.util.*;

public class ConnectionPool {
  private Hashtable connections;
  private int increment;
  private String dbURL, user, password;

  public ConnectionPool(String dbURL,
                        String user,
                        String password,
                        String driverClassName,
                        int initialConnections,
                        int increment)
          throws SQLException, ClassNotFoundException {

    // Load the specified driver class
    Class.forName(driverClassName);

    this.dbURL = dbURL;
    this.user = user;
    this.password = password;
    this.increment = increment;

    connections = new Hashtable();

    // Put our pool of Connections in the Hashtable
    // The FALSE value indicates they’re unused
    for(int i = 0; i < initialConnections; i++) {
      connections.put(DriverManager.getConnection(dbURL, user, password),
                      Boolean.FALSE);
    }
  }

  public Connection getConnection() throws SQLException {
    Connection con = null;

    Enumeration cons = connections.keys();

    synchronized (connections) {
      while(cons.hasMoreElements()) {
        con = (Connection)cons.nextElement();

        Boolean b = (Boolean)connections.get(con);
        if (b == Boolean.FALSE) {
          // So we found an unused connection.
          // Test its integrity with a quick setAutoCommit(true) call.
          // For production use, more testing should be performed,
          // such as executing a simple query.
          try {
            con.setAutoCommit(true);
          }
          catch(SQLException e) {
            // Problem with the connection, replace it.
            con = DriverManager.getConnection(dbURL, user, password);
          }
          // Update the Hashtable to show this one’s taken
          connections.put(con, Boolean.TRUE);
          // Return the connection
          return con;
        }
      }
    }

    // If we get here, there were no free connections.
    // We’ve got to make more.
    for(int i = 0; i < increment; i++) {
      connections.put(DriverManager.getConnection(dbURL, user, password),
                      Boolean.FALSE);
    } 

    // Recurse to get one of the new connections.
    return getConnection();
  }

  public void returnConnection(Connection returned) {
    Connection con;
    Enumeration cons = connections.keys();
    while (cons.hasMoreElements()) {
      con = (Connection)cons.nextElement();
      if (con == returned) {
        connections.put(con, Boolean.FALSE);
        break;
      }
    }
  }
}
Avatar billede tokai Nybegynder
24. december 2008 - 15:28 #8
og hvad betyder increment variablen
Avatar billede tokai Nybegynder
24. december 2008 - 15:36 #9
oki har fundet ud af increment variablen
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