Connection Pool funktioniert nicht

mario87b

Aktives Mitglied
Hallo.

Ich sitz jetzt zwei Tage an dem Problem die Verbindung zur Datenbank über einen Connection Pool des Servers herzustellen.

System:

Apache-Tomcat 7.0.14
MySQL Datenbank 5.x

Netbeans 7.x.x


Ich hab viel im Internet zu dem Thema gefunden, habs auch so aufgesetzt, aber geht nicht.

Die Erstellung einer Verbindung führt zu einer Exception.

Java:
Cannot create JDBC driver of class '' for connect URL 'null'


Die jar Archive sind da wo sie sein sollen, der MySql Treiber ist funktionstüchtig. ICh hab in anderen Anwendungen bereits mit diesem j_security_check gearbeitet und der nutzt ja wohl den selben Treiber.


Hier der relevante Code.

1. server.xml
Java:
...
<Context>
<Resource name="jdbc/testmysql" auth="Container"
            maxActive="100" maxIdle="30" maxWait="1000"
            username="admin" password="wissenistmacht"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://184.25.16.3:3306/raumbelegung_dummy"
         />
</Context>
...

2. web.xml
Java:
...
<resource-ref>
        <res-ref-name>jdbc/testmysql</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
</resource-ref>
...

3. Anwendung
Java:
...
private DataSource getDataSource (String dataSourceLocation) throws NamingException
  {
    // Get a context for the JNDI look up
    Context ctx = new InitialContext();
    
    Context envContext = (Context) ctx.lookup("java:/comp/env");
              
    // Look up a data source
    javax.sql.DataSource ds = (javax.sql.DataSource) envContext.lookup (dataSourceLocation); 
    //javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup (dataSourceLocation); 
    
    
    return ds;
  }
  
  private Connection getConnection (DataSource ds) throws SQLException
  {
    Connection conn = null;
    // Get a connection object
    conn = ds.getConnection();
   
    return conn;
  }

 public void startTest () {
     logger.debug ("startTest()");
     ResultSet r;
     try {
            
            DataSource ds = getDataSource ("jdbc/testmysql");
            //DataSource ds = getDataSource ("java:/comp/env/jdbc/TestDB");
            
            
           //das hier führt zur Ex !!!!!!
           Connection conn = getConnection (ds);
            

    //Statement stmt = (Statement) conn.createStatement();
            //r = stmt.executeQuery("select name from tel_neu1");
            //r = stmt.executeQuery("select * from raum");
            
            //while (r.next()) {
            //  logger.debug(r.getString(1));  
            //}
            //r.close();
            
        }
        catch (javax.naming.NamingException ex) {
         logger.debug("NamingEx: " + ex.getMessage());   
        }
        catch (java.sql.SQLException e) {
            
           logger.debug("SQLEX: " + e.getMessage());
            
        }
 }...


HILFE!!!!
 
S

SlaterB

Gast
Trosthilfe:
die Fehlermeldung kann man super in eine Suchmaschine eintippen, da kommen zig Seiten mit diversen Konfigurationen,
dein Fall hoffentlich dabei, vielleicht noch mehr deiner XML-Tags usw. aufnehmen in die Suche

ich selber sehe leider nicht so gut durch, scheint in jedem Thema anders konfiguriert zu sein
 

mario87b

Aktives Mitglied
JA! Und in den Suchergebnissen steht überall dasselbe drin und genau das funktionierte ja eben nicht!!!!!

Ich wende mich normalerweise eben erst ans Forum, wenn über die Suchmaschine keine Lösung möglich erscheint!


Ich hab eine Lösung.

Ich habe die ganze Zeit versucht, einen "globalen" Connection Pool für alle Anwendungen auf dem Server zu erstellen. Das funktioniert zwar immer noch nicht, aber das brauch ich eigentlich auch nicht.

Mir genügt das auf der Ebene der einzelnen Applikation. Jede Applikation hat bei mir sowieso andere Verbindungsparameter, andere Datenbank usw.

Ich habe den Resourceneintrag jetzt unverändert in die META-INF/context.xml eingetragen und nun funktioniert alles.

Ich frag mich wieso das in den sämtlichen Tutorials im Internet nicht einmal Glasklar beschrieben steht...
 
S

SlaterB

Gast
wie gesagt meine Antwort maximal Trosthilfe, "Ich hab viel im Internet zu dem Thema gefunden" hatte ich dabei eher überlesen,

wenn du jetzt in etwa selber auf die Lösung gekommen bist, dann habe ich es ja zeitlich gut abgepasst ;) , bis 13.00 hätte jeder was schreiben können
(wenn erstmal Antworten anfangen, sinkt die Aufmerksamkeit etwas gegenüber unbeantworteten Themen, finde ich)
 

Ähnliche Java Themen

Neue Themen


Oben