Grails运行时异常:无法打开事务的Hibernate会话
我现在已经在tomcat服务器上开发了一个Grails web应用程序及其应用程序。我得到以下例外情况: 无法为事务打开休眠会话;嵌套异常为org.hibernate.TransactionException:JDBC begin失败: 这是第一次有人尝试使用RESTful服务。RESTful服务在第一次刷新后可以正常工作,在后续请求发出时也可以正常工作 Stacktrace如下所示: java.net.SocketException:连接重置Grails运行时异常:无法打开事务的Hibernate会话,hibernate,grails,Hibernate,Grails,我现在已经在tomcat服务器上开发了一个Grails web应用程序及其应用程序。我得到以下例外情况: 无法为事务打开休眠会话;嵌套异常为org.hibernate.TransactionException:JDBC begin失败: 这是第一次有人尝试使用RESTful服务。RESTful服务在第一次刷新后可以正常工作,在后续请求发出时也可以正常工作 Stacktrace如下所示: java.net.SocketException:连接重置 at java.net.SocketOutputS
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:96)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3333)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1971)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)
at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4997)
at org.apache.commons.dbcp.DelegatingConnection.setAutoCommit(DelegatingConnection.java:371)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.setAutoCommit(PoolingDataSource.java:328)
at $Proxy102.setAutoCommit(Unknown Source)
......
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
at java.lang.Thread.run(Thread.java:662)
非常感谢您的帮助
谢谢我们在DataSource.groovy中使用以下内容来解决这个问题。查看@JamesA的链接,前提是它似乎也有所需的信息
dataSource {
...
properties {
...
// when to test
testOnBorrow = true
testWhileIdle = true
testOnReturn = false
// what to test with
validationQuery = "SELECT 1"
}
}