无法将战争部署到GlassFish 4.1.2服务器,因为无法找到数据库

时间:2017-07-03 13:50:41

标签: jpa jdbc glassfish derby

我正在阅读GlassFish4应用服务器上的一本书,并且无法将示例战争部署到服务器。服务器说:

"部署期间出错:部署应用程序时出现异常[jpaintro-1.0]:异常[EclipseLink-4002](Eclipse Persistence Services - 2.6.1.v20150605-31e8258):org.eclipse.persistence.exceptions .DatabaseException内部异常:java.sql.SQLException:分配连接时出错。原因:无法分配连接,因为:连接被拒绝,因为找不到数据库customerdb。错误代码:0。有关详细信息,请参阅server.log。"

数据库服务器是GlassFish附带的Derby。使用./ij提示符创建数据库:

connect' jdbc:derby:// localhost:1527 / customerdb; create = true';

接下来我可以登录:

connect' jdbc:derby:// localhost:1527 / customerdb; user = dev; password = dev';

并成功输入表创建数据并插入表数据。接下来,我可以使用SQL检索此数据。一切都很好,所以数据库存在。

物理位置数据库: /家庭/ fedora的/ GlassFish的/ glassfish4 /的glassfish /数据库/ 1527 / customerdb

设置了DERBY_HOME环境值。 我必须从命令行提示符设置以下资源:

./ asadmin create-jdbc-connection-pool --datasourceclassname org.apache.derby.jdbc.ClientDataSource --restype javax.sql.DataSource --property DatabaseName = customerdb:User = dev:password = dev CustomerDBPool

./ asadmin create-jdbc-resource --connectionpoolid CustomerDBPool jdbc / __ CustomerDBPool

我可以在GlassFish控制台中验证它们是否已成功创建。 JDBC连接池确实有一个条目CustomerDBPool,带有一个"附加属性" name = DatabaseName,value = customerdb以及用户/密码dev / dev。控制台中还有一个JDBC资源,其JNDI名称为jdbc / __ CustomerDBPool,池名称为CustomerDBPool

我无法部署的war文件包含一个JPA实体Customer和名为bean JpaDemoBean的CDI。后者构造一些Customer对象并将它们持久保存到数据库中。

在persistence.xml中只有一个jta-data-source元素,其值为jdbc / __ CustomerDBPool

我完全按照字面意思"来自书"。

现在为什么我不能部署战争?

突然之间,我无法通过命令行工具ij连接到数据库: 错误08004:连接被拒绝,因为找不到数据库customerdb。

我可以从命令行停止并启动数据库服务器,但在启动期间我收到消息: "数据库主目录无效:/ home / fedora / GlassFish / glassfish4 / glassfish / databases"

然而,启动过程仍在继续,并表示它已成功启动数据库。

提前致谢!

0 个答案:

没有答案