使用H2服务器模式进行Grails集成测试
我想在服务器模式下尝试用户H2 db进行grails集成测试,但有一个问题:使用H2服务器模式进行Grails集成测试,grails,groovy,h2,Grails,Groovy,H2,我想在服务器模式下尝试用户H2 db进行grails集成测试,但有一个问题:H2GrailsPlugin:startedTCP server-args:-TCP,-tcpPort,8043 错误pool.ConnectionPool-无法创建池的初始连接。 消息:连接断开:“java.net.ConnectException:连接被拒绝:localhost:8043” 现在,我使用grails h2插件运行h2服务器,并在Config.groovy中进行下一次配置: plugins { h2 {
H2GrailsPlugin:startedTCP server-args:-TCP,-tcpPort,8043
错误pool.ConnectionPool-无法创建池的初始连接。
消息:连接断开:“java.net.ConnectException:连接被拒绝:localhost:8043”
现在,我使用grails h2插件运行h2服务器,并在Config.groovy中进行下一次配置:
plugins {
h2 {
tcpserver {tcpPort = 8043;}
}
}
这是我的数据源:
test {
dataSource_one {
pooled = true
driverClassName = "org.h2.Driver"
username = "sa"
password = ""
dbCreate = "update"
//url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
url = "jdbc:h2:tcp://localhost:8043/testDb"
}
我还尝试在Bootstrap.groovy中直接运行服务器:
import grails.util.Environment
import org.h2.tools.Server
class BootStrap {
Server server
def init = { servletContext ->
println "INIT"
if(Environment.current == Environment.TEST){
server = Server.createTcpServer('-tcpPort', '8043').start()
}
}
def destroy = {
server.stop()
}
}
但由于之前引发了异常,所以未执行此代码。如果有人能帮我解决这个问题,那就太好了。为什么要在8043上使用h2?您是否测试了8043上是否有h2可用的连接。我建议首先尝试删除插件{h2{tcpserver{tcpPort=8043;}}}},并使用grails附带的默认设置正常运行它。我需要多个连接功能,正如我所知,只有服务器模式提供了它,而不是默认的嵌入式。