2012-03-23 11 views
0

Ich versuche, alle Datenbankinformationen aus den Projekten zu verschieben, damit die SA die Server einrichten und dieselbe WAR von DEV-> QA-> PROD verschieben kann, ohne etwas in den WAR-Dateien zu ändern. Wir haben JNDI für eine MySQL-Datenbank auf tomcat6 eingerichtet.Warum funktioniert das? JNDI, Tomcat6

folgend server.xml

<Resource name="jdbc/mi" auth="Container" type="javax.sql.DataSource" 
       username="xxx" password="xxx" 
       url="jdbc:mysql://xx" 
       driverClassName="com.mysql.jdbc.Driver" 
       initialSize="5" maxWait="5000" 
       maxActive="120" maxIdle="5" 
       validationQuery="select 1" 
       poolPreparedStatements="true"/> 

hinzufügen Aber das Projekt nicht richtig funktioniert. Ich erhalte die folgende Fehlermeldung:

Caused by: org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' 

, wenn ich eine /META-INF/context.xml mit den gleichen Informationen in meinem Projekt alles laufe sehr gut setupp aber der SA will nicht die Serverinformationen in meinem Krieg. Was kann es sein?? kann jemand bitte helfen Sie mir auf diesem .. Ich suche im ganzen Internet und versuchte alles, aber nichts funktioniert .. bitte helfen Sie einem Programmierer aus!

Antwort

1

Haben Sie WEB-INF/web.xml in Ihrem Projekt eingerichtet? Es sollte so etwas enthalten

<resource-env-ref> 
    <resource-env-ref-name>jdbc/mi</resource-env-ref-name> 
    <resource-env-ref-type>javax.sql.DataSource</resource-env-ref-type> 
</resource-env-ref> 

Sie haben es in Ihrer Frage nicht erwähnt, so dass es möglicherweise fehlt. Siehe Java documentation und the Tomcat6' one

1

In Ihrer context.xml benötigen Sie einen Ressourcenlink, damit die App global nach der Ressource suchen kann.

<ResourceLink name="jdbc/mi" global="jdbc/mi"/> 
1

Zusätzlich zu den oben genannten Antworten, müssen Sie die JDBC-Bibliothek für Ihre DB, um sicherzustellen, in dem $ platziert {TOMCAT_HOME}/lib Ordner.