简体   繁体   English

CannotCreateTransactionException:无法打开休眠会话进行事务

[英]CannotCreateTransactionException: Could not open Hibernate Session for transaction

All of sudden my webapp which uses Spring and Hibernate has stopped connecting to the Apache Derby database. 我的使用Spring和Hibernate的Web应用突然停止了连接到Apache Derby数据库的连接。

I wonder if anyone can suggest why? 我想知道是否有人可以建议原因?

My application uses Spring 4.0.2 and Hibernate 4.3.5 . 我的应用程序使用Spring 4.0.2Hibernate 4.3.5 The versions of derby.jar and derbyClient.jar belonging to the project are taken from Java JDK 1.8.0 and I am using Apache Derby 10.10.1.1 . 属于该项目的derby.jarderbyClient.jar版本来自Java JDK 1.8.0 ,我正在使用Apache Derby 10.10.1.1 Apache Tomcat 8.0.3.0 is my server. 我的服务器是Apache Tomcat 8.0.3.0

My project's dispatcherservlet 's Hibernate details are as follows: 我项目的dispatcherservlet的Hibernate详细信息如下:

<!-- Hibernate DataSource. -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">        
    <property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" />
    <property name="url" value="jdbc:derby://localhost:1527/Library" />
    <property name="username" value="username" />
    <property name="password" value="password" />            
</bean>   

<!-- Hibernate SessionFactory. -->    
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">    
    <property name="dataSource" ref="dataSource"></property>                  
    <property name="hibernateProperties">
        <props>               
           <prop key="hibernate.dialect">org.hibernate.dialect.DerbyTenSixDialect</prop>
           <prop key="hibernate.show_sql">false</prop>
           <prop key="hibernate.current_session_context_class">thread</prop>

           <!-- What to do with the database schema. -->
           <prop key="hbm2ddl.auto">update</prop>    
           <!-- validate:    validate the schema, makes no changes to the database.
                update:      update the schema.
                create:      creates the schema, destroying previous data.
                create-drop: drop the schema at the end of the session. -->                 
        </props>            
    </property>                                                                                                                                                                                                                                                                        
    <property name="packagesToScan">
        <list>
            <value>registration_spring_hibernate.model</value>                
        </list>
    </property>          
</bean>

<!-- Hibernate TransactionManagment. -->
<tx:annotation-driven />                
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
   <property name="sessionFactory" ref="sessionFactory" />
</bean>  

The full error log is as follows: 完整的错误日志如下:


INFO|30 06 2015|13 45 25|http-apr-8080-exec-73|registration_spring_hibernate.controller.PersonController| - registration_spring_hibernate.controller.PersonController.getList() method called.
WARN|30 06 2015|13 45 25|http-apr-8080-exec-73|org.hibernate.engine.jdbc.spi.SqlExceptionHelper| - SQL Error: 0, SQLState: 08001
ERROR|30 06 2015|13 45 25|http-apr-8080-exec-73|org.hibernate.engine.jdbc.spi.SqlExceptionHelper| - No suitable driver found for jdbc:derby://localhost:1527/Library
INFO|30 06 2015|13 45 25|http-apr-8080-exec-73|registration_spring_hibernate.controller.PersonController| - registration_spring_hibernate.controller.ExceptionController.exception() method called.
Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.JDBCConnectionException: Could not open connection
org.springframework.orm.hibernate4.HibernateTransactionManager.doBegin(HibernateTransactionManager.java:515)
org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:373)
org.springframework.transaction.interceptor.TransactionAspectSupport.createTransactionIfNecessary(TransactionAspectSupport.java:420)
org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:257)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644)
registration_spring_hibernate.service.PersonService$$EnhancerBySpringCGLIB$$8cd04f.list()
registration_spring_hibernate.controller.PersonController.getList(PersonController.java:73)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:690)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:618)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:725)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:301)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:503)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:136)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:74)
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1015)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:652)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:277)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2451)
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2440)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
java.lang.Thread.run(Thread.java:744)

After a long discussion on chat, here is the answer, where I am just posting the new xml : 经过长时间的讨论,这是答案,我只是在其中发布新的xml:

<!-- Hibernate DataSource. -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<!-- property name="driverClassName" value="org.apache.derby.jdbc.ClientDriver" /-->
<property name="driverClassName" value="org.apache.derby.jdbc.EmbeddedDriver" />
<property name="url" value="jdbc:derby://localhost:1527/Library" />
<property name="username" value="username" />
<property name="password" value="password" />
</bean>

<!-- Hibernate Interceptors. -->
<bean id="serverInterceptor" class="library.interceptor.ServerInterceptor" />

<!-- Hibernate SessionFactory. -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<!-- prop key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop-->
<prop key="hibernate.dialect">org.hibernate.dialect.DerbyTenSixDialect</prop>
<prop key="hibernate.show_sql">false</prop>

Also dont forget to use the interfaces which are not generic. 也不要忘记使用非通用的接口。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 org.springframework.transaction.CannotCreateTransactionException:无法打开Hibernate Session进行事务处理 - org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction CannotCreateTransactionException:无法打开事务的Hibernate会话(Hibernate,MySQL,MVC) - CannotCreateTransactionException: Could not open Hibernate Session for transaction(Hibernate, MySQL, MVC) SpringMVC和Hibernate:CannotCreateTransactionException:无法打开Hibernate Session进行事务处理; - SpringMVC & Hibernate : CannotCreateTransactionException: Could not open Hibernate Session for transaction; 休眠会话无法打开进行交易 - Hibernate Session Could not open for transaction 首次登录时无法为事务打开休眠会话 - Could not open Hibernate Session for transaction on First Login 无法为事务打开Hibernate Session,JavaConfig - Could not open Hibernate Session for transaction, JavaConfig 为什么会发生这种“无法打开Hibernate Session进行交易”的情况? - why this “Could not open Hibernate Session for transaction” occured? 无法为事务打开 Hibernate Session; 嵌套异常是无法打开连接 - Could not open Hibernate Session for transaction; nested exception is Could not open connection 无法为事务打开Hibernate会话:从类加载器中看不到ConnectionWrapper - Could not open Hibernate Session for transaction: ConnectionWrapper is not visible from class loader 无法为事务 JAVA MAVEN SPRING 打开 Hibernate 会话 - Could not open Hibernate Session for transaction JAVA MAVEN SPRING
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM