首页 > 解决方案 > 无法从 Java EE 应用程序浏览内存数据库中的 H2

问题描述

我从 H2 控制台连接到内存 DB 中的 H2 时遇到问题。我没有使用 Spring - 只是纯 Java EE。我在 persistence.xml 文件中指定 H2 连接字符串:

<persistence-unit name="testPersistenceUnit" transaction-type="JTA">
<jta-data-source>jdbc:h2:mem:testdb</jta-data-source>
<properties>
    <property name="javax.persistence.jdbc.driver" value="org.h2.Driver" />
    <property name="javax.persistence.jdbc.url" value="jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE" />
    <property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
</properties>

然后,当应用程序在我的一个 servlet 中启动时,我将启动 TCP 和 Web H2 服务器:

Server.createWebServer("-web", "-webAllowOthers", "-webPort", "8082").start();
Server.createTcpServer("-tcp", "-tcpAllowOthers", "-tcpPort", "9092").start();

然后我尝试打开 localhost:8082 并输入连接所需的信息:

我看到的第一个问题 - 我输入的用户/密码无关紧要 - 连接总是成功的。另一个问题 - 当我按下 Connect 时,我看不到任何表格。我知道使用 Spring 支持很容易。但是,我发现的解决方案不适用于 Java EE 应用程序。

标签: jpajakarta-eeh2h2db

解决方案


推荐阅读