我现在开发了一个Grails Web应用程序及其在tomcat服务器上的应用程序。我得到以下例外:
无法打开Hibernate Session进行交易;嵌套异常是org.hibernate.TransactionException:JDBC开始失败:
当有人试图在当天使用RESTful服务时,会发生这种情况。 RESTful服务在第一次刷新后正常工作,并且在后续请求发生时也能正常工作。
Stacktrace如下:
java.net.SocketException:连接重置
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)
非常感谢任何帮助。
由于
答案 0 :(得分:0)
我们在DataSource.groovy中使用以下内容来解决该问题。查看链接@JamesA,前提是它似乎也有所需的信息。
dataSource {
...
properties {
...
// when to test
testOnBorrow = true
testWhileIdle = true
testOnReturn = false
// what to test with
validationQuery = "SELECT 1"
}
}