java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/sushi
Ich habe eine web-Anwendung eine jar-Datei(lib), um auf die Datenbank zuzugreifen.
Die jar-Datei als standalone-Anwendung ausgeführt wird richtig, aber die webapp wurde mit dem Fehler:
[01-08-12 13:17:05] - 35266 WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 0, SQLState: 08001
java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/myapp
Las ich die Antworten auf ähnliche Fragen, aber keine davon mein problem lösen.
Ich bin mit Maven, wo habe ich die Abhängigkeit für die mysql-version, die ich verwende, 5.1.21. In der Tat, ich habe es sowohl für die Lib und die Webapp.
Vorher habe ich versucht zu definieren, in Eclipse ein Connectivity-Treiber-Definition gebunden ist, um die gleiche Datei, die ich kopiert hatte, um WEB-INF/lib im eclipse Projekt für meine Webapp und mit den gleichen Parametern, die ich unten für die persistence.xml Datei
Ich bin nicht mit jedem java zu konfigurieren, da ich die ganze Konfiguration in der persistence.xml die Datei(das habe ich kopiert, um beide META-INF Ordner, die man für die app(lib) und der für die webapp. Ich bin mit Hibernate (4.1.2) durch das JPA.
Den persistence.xml die Datei ist ähnlich:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="myappPersistenceUnit"
transaction-type="RESOURCE_LOCAL">
<provider> org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/myapp" />
<property name="javax.persistence.jdbc.user" value="root" />
<property name="javax.persistence.jdbc.password" value="" />
</properties>
</persistence-unit>
</persistence>
Ausnahme, dass ich zur Laufzeit, beim starten einer Http-Anforderung an die app, nicht bei der Initialisierung der webapp, wo ich haven ' T gesehen keine Fehler, aber diese Warnung wird angezeigt:
[01-08-12 13:16:39] - 8782 WARNEN
org.hibernate.Motor.jdbc.intern.JdbcServicesImpl - HHH000342:
Konnte keine Verbindung zur Abfrage von Metadaten : No suitable driver
found for jdbc:mysql://localhost:3306/myapp
Ich denke, dies ist aufgrund der Informationen nachgeschlagen wird aus der Datenbank ist nicht notwendig, init, wird keine Ausnahme ausgelöst, sondern der gleichen Ursache in beiden Fällen.
EDIT:ich benutze Tomcat 6.0
Jede Hilfe wird sehr geschätzt werden.
- Haben Sie den classpath?
- Bitte fügen Sie, was application server, den Sie verwenden
- der classpath sollte nicht verwaltet werden, die von tomcat und maven? (Ich checke in der Zwischenzeit)
- Ich habe den mysql-connector enthalten im Java Build Path->Bibliotheken über das Apache-Tomcat v6.0 wie ich kopierte die Datei TOMCAT_HOME\lib. Ist es das, was Sie sich beziehen, oder vielleicht sollte ich legen Sie eine system-variable-zu-Punkt auch TOMCAT_HOME\lib?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es, dass Sie fehlen MySql-Treiber in Ihrem Projekt. Um dieses Problem zu lösen Sie benötigen mysql-connector.jar. von außen auf Ihr Projekt.
Oder wenn Sie mit einem maven-Projekt verwenden Sie dann die folgende Abhängigkeit in Ihrem pom.xml Datei.
Können Sie eine passende version, wenn nötig!!
Wenn Sie Ihre Anwendung ausgeführt wird als eine Java-Anwendung, Fügen Sie die JAR-Datei in den Java Build Path in Eclipse.
Alternativ würde ich Sie nicht setzen Sie die MSQL-Glas innen
WEB-INF/lib
- Ordner Ihres web-Projekts, sondern ich würde Sie in Ihrer Anwendung Ordner Bibliothek Ordner, wo die Anwendung-Server laden Sie Ihre Fahrer und Sie können den Zugriff vom Application Server container.TOMCAT_HOME
/server/libsollten Sie mysql connector jar mit Ihrem eigenen code & fügen Sie die jar-Datei in Ihrem Projekt.
Ich hatte auch das gleiche problem vor einiger Zeit, aber habe ich dadurch gelöst, dass Problem. Es kann verschiedene Gründe für diese Ausnahme.
Einer von Ihnen sein kann, dass die
jar
Sie hinzufügen, um Ihrelib
Ordner kann alt sein. Versuchen Sie herauszufinden, die neuesten mysql-connector-jar-version und hinzufügen, dass Ihreclasspath
. Es wird das Problem möglicherweise behoben.