![](/img/trans.png)
[英]ERROR: No suitable driver found for jdbc:mysql://localhost:3306/test
[英]No suitable driver found for jdbc:mysql://localhost:3306/test
當我嘗試在Tomcat 7上運行我的JSF應用程序時,它將引發此異常。
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost:3306/test
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:192)
at org.hibernate.internal.AbstractSessionImpl$NonContextualJdbcConnectionAccess.obtainConnection(AbstractSessionImpl.java:278)
at org.hibernate.engine.jdbc.internal.LogicalConnectionImpl.obtainConnection(LogicalConnectionImpl.java:297)
... 51 more
如果我在創建EntitiyManagerFactory之前添加此行,則可以正常工作。
Class.forName("com.mysql.jdbc.Driver");
emf = Persistence.createEntityManagerFactory("manager1");
我的依賴是
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.2.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.19</version>
</dependency>
我的應用程序也可以在tomcat 6上正常工作,而無需添加Class.forName("com.mysql.jdbc.Driver");
有解決這個問題的主意嗎? 謝謝
第一個也是實際的解決方案:嘗試使用Hibernate 4.1.0和4.1.3.Final。
在最終跌入https://forum.hibernate.org/viewtopic.php?p=2454336之前,我在Hibernate 4.1.2上遇到了此問題。 據我所知,Tomcat的更高版本(針對DeviceManager的漏洞性質的修復程序)與Hibernate 4.1.2之間有些不兼容。
其他解決方法是像Brad Whitaker的回答中那樣顯式調用驅動程序的注冊,或者通過在$ CATALINA_HOME / conf / server的偵聽器定義中添加driverManagerProtection="false"
來確保JreMemoryLeakPreventionListener沒有保護DriverManager。 xml-即:
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" driverManagerProtection="false">
我從Tomcat 5.5和Java 6遷移到Tomcat 7和Java 7時,遇到了同樣的問題。我以前的.war開始拋出“ java.sql.SQLException:找不到適用於jdbc:sqlserver的驅動程序... ”。 我能夠通過簡單地添加來解決
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
在調用之前
java.sql.DriverManager.getConnection("myUrl");
我知道文檔說明jdbc4驅動程序不需要此附加調用,但這已解決了我的問題。 驅動程序jar(sqljdbc4.jar)位於我的.war的WEB-INF / lib中。
問題是驅動程序類在您的應用程序運行時不可用,請將驅動程序jar放入/WEB-INF/lib
在某些服務器(jboss,glassfish)上,我還必須將驅動程序jar放入服務器的默認庫文件夾中。
我有類似的問題。 通過將休眠模式升級到4.1.4final可以解決此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.