1

我正面临下一个问题。在我的公司,我们正在将 Hypersonic 数据库从 Jboss 移动到 TomEE 服务器 (apache-tomee-plus-7.0.1)。根据 Hypersonic 文档,所有必需的库都在服务器的 lib 目录中(默认情况下)。

我想,当服务器开始从配置开始以服务器模式(在特定端口上)运行 Hypersonic 数据库时,部署在同一台服务器上的 webapp 可以连接到它。

这是我们在 tomee.xml 中的资源配置:

<Resource id="HSQLDB Database" type="DataSource">
    jdbcDriver = org.hsqldb.jdbcDriver
    jdbcUrl = jdbc:hsqldb:hsql://127.0.0.1:9001
    userName = sa
    password =
</Resource>

但是当服务器启动时,我们得到下一个错误:

org.apache.openejb.assembler.classic.Assembler.createRecipe Creating Resource(id=HSQLDB Database)
16-Sep-2016 13:14:05.145 SEVERE [main] org.apache.tomcat.jdbc.pool.ConnectionPool.init Unable to create initial    connections of pool.
java.sql.SQLTransientConnectionException: java.net.ConnectException: Connection refused: connect

有人能告诉我我们做错了什么吗?我们如何在服务器模式下成功地在 Tomee 上部署 Hypersonic 数据库?

4

1 回答 1

2

我看到您没有指定要连接的数据库名称和别名。以下两个 URL 应该都能正常工作。HSQL 数据库默认使用端口9001。如果没有设置不同,以下所有 URL 应该都能正常工作:

jdbc:hsqldb:hsql://localhost:9001/myDatabase
jdbc:hsqldb:hsql://127.0.0.1:9001/myDatabase
jdbc:hsqldb:hsql://localhost/myDatabase
jdbc:hsqldb:hsql://127.0.0.1/myDatabase

在使用 Java 连接到数据库之前,您必须在终端中启动服务器:

java -cp C:/----/hsqldb-2.3.4/lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:myDatabase --dbname.0 myDatabase

不要忘记指定hsqldb.jar.

于 2016-09-18T20:24:33.960 回答