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

我正在通过一本关于GlassFish4应用程序服务器的书,并且在向服务器部署示例战时遇到问题。 服务器说:

“部署期间发生错误:部署应用程序时发生异常[jpaintro-1.0]:异常[EclipseLink-4002](Eclipse持久性服务 - 2.6.1.v20150605-31e8258):org.eclipse.persistence.exceptions.DatabaseException内部异常:java .sql.SQLException:分配连接时出错原因:无法分配连接,因为:由于数据库customerdb未找到而导致连接被拒绝错误代码:0请参阅server.log获取更多详细信息。

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

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

接下来我可以登录:

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

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

物理位置数据库:/ home / fedora / GlassFish / glassfish4 / glassfish / databases / 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,其中具有“附加属性”名称= DatabaseName,value = customerdb以及用户名/密码dev / dev。 在控制台中还有一个JNDI名称为jdbc / __ CustomerDBPool和池名称为CustomerDBPool的JDBC资源

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

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

我全部都是从字面上“从书中”。

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

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

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

尽管如此,启动过程仍在继续,并称它已成功启动数据库。

提前致谢!

链接地址: http://www.djcxy.com/p/41247.html

上一篇: Cannot deploy war to GlassFish 4.1.2 server because database can't be found

下一篇: Derby db connectivity problems