Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java启动时H2的连接问题和dbunit的使用_Java_Junit_H2_In Memory Database - Fatal编程技术网

从Java启动时H2的连接问题和dbunit的使用

从Java启动时H2的连接问题和dbunit的使用,java,junit,h2,in-memory-database,Java,Junit,H2,In Memory Database,我想从我的JUnit测试开始,在内存数据库中填充数据。 当我通过h2.bat启动服务器时,我的JUnit测试应用程序一切正常 但是当我尝试从Java启动服务器时,我遇到了一些连接问题 (当我尝试通过webinterface连接到db时,我得到了gui,但其功能缺失/错误) 在@BeforeClass设置中启动服务器的代码: args = new String[] { "-tcpPort", "8082","-tcpAllowOthers"}; h2Server = Server.createTc

我想从我的JUnit测试开始,在内存数据库中填充数据。 当我通过h2.bat启动服务器时,我的JUnit测试应用程序一切正常

但是当我尝试从Java启动服务器时,我遇到了一些连接问题 (当我尝试通过webinterface连接到db时,我得到了gui,但其功能缺失/错误)

在@BeforeClass设置中启动服务器的代码:

args = new String[] { "-tcpPort", "8082","-tcpAllowOthers"};
h2Server = Server.createTcpServer(args).start();
// i also tried the createWebServer but it didn't make any difference
打开连接一次的代码:

String url = "jdbc:h2:tcp://localhost:8082/mem:db1";
h2Connection = DriverManager.getConnection(url,"SA","");
出于某种原因,我要么没有连接到数据库,但更有可能存在某种连接,但正如所说的,我遇到了一些未定义的连接问题

如何尝试实现与从cmdline运行h2.bat时相同的功能? 我是否在createserver上使用了错误的参数

更新1:
我发现了问题。使用dbUnit注入我的testdata似乎意外地关闭了我的h2连接(仍然想知道为什么在运行h2.bat cmdline时没有发生这种情况)

我现在将尝试运行内存模式,如果它起作用,我将删除此问题或为其他用户写下问题和解决方案

更新2: 它现在在全内存模式下工作,我不确定,但对我来说,核心问题似乎是(我没想到)调用:

也关闭了我的连接


如前所述,当我从cmdline运行h2server时,这种情况并没有发生。

您认为“其功能缺失/错误”和“存在某种连接,但如前所述,我遇到一些未定义的连接问题”是什么意思?您是否有异常消息和堆栈跟踪,或者有什么问题?当我单击GUI按钮时,我的浏览器会下载一些.jsp文件,而不是单击按钮。我有一次失去了一个stacktrace连接,但我需要尝试重现它,在我尝试“tcp localhost”之前,我在内存模式“jdbc:h2:mem:db1”中尝试了(这是目标)。我会尽快更新问题
IDatabaseConnection dBUnitConnection = new DatabaseConnection(h2Connection);
....
dbUnitConnection.close()