mka*_*man 0 java tomcat hibernate jpa
当我尝试在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
Run Code Online (Sandbox Code Playgroud)
如果我在创建EntitiyManagerFactory之前添加此行,它可以正常工作.
Class.forName("com.mysql.jdbc.Driver");
emf = Persistence.createEntityManagerFactory("manager1");
Run Code Online (Sandbox Code Playgroud)
我的依赖是
<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>
Run Code Online (Sandbox Code Playgroud)
另外我的应用程序工作正常tomcat 6,没有添加 Class.forName("com.mysql.jdbc.Driver");
有什么想法解决这个问题吗?谢谢
第一个真正的解决方案:尝试使用Hibernate 4.1.0和4.1.3.Final.
我在Hibernate 4.1.2上遇到了这个问题,最终遇到了https://forum.hibernate.org/viewtopic.php?p=2454336.据我所知,Tomcat的更新版本(在其针对DeviceManager的漏洞性质的修复)和Hibernate 4.1.2之间存在一些不兼容性.
其他解决方法是显式调用驱动程序的注册,如Brad Whitaker的答案,或者通过添加driverManagerProtection="false"$ CATALINA_HOME/conf/server.xml中的Listener定义来确保JreMemoryLeakPreventionListener不保护DriverManager - 即:
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" driverManagerProtection="false">
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10408 次 |
| 最近记录: |