将应用程序部署到 GlassFish Server 时出现问题 - 映射问题?

Posted

技术标签:

【中文标题】将应用程序部署到 GlassFish Server 时出现问题 - 映射问题?【英文标题】:Issue when deploying application to GlassFish Server - mapping issue? 【发布时间】:2013-08-18 20:03:48 【问题描述】:

我正在尝试将应用程序部署到我的 GlassFish Server 环境。我进行了设置,以便 GlassFish 在数据库所在的另一台服务器(not localhost)上创建一个到 postgreSQL 数据库的连接池。我测试连接,然后尝试部署应用程序。它失败并出现java.lang.RuntimeException: EJB Container initialization 错误,我的错误日志包含以下内容:http://ideone.com/UlZXut(由于其大小而将其放在这里)。上面还有其他警告,但它们只引用了已经存在的表。

根据this,我认为在部署时会自动生成所需的sun-cmp-mappings.xml 文件(我认为这是正确映射所必需的),但似乎我错了。谁能解释一下这种情况?

如果这不是 SE 发布此内容的绝对最佳部分,我深表歉意,但它与开发工具有关,我确实看到了许多相关帖子。

【问题讨论】:

【参考方案1】:

您的错误日志表明您正在尝试使用 DOUBLE 作为数据类型创建表。在 Postgresql 中,该数据类型实际上称为“double precision”。如果您修改表定义以改用“双精度”会发生什么?

【讨论】:

问题是,我无法直接控制应用程序,只需将其设置为引用特定数据库即可。它有几个用于所有模式的 sun--cmp-mappings.xml 文件,但没有单个 sun-cmp-mappings.xml 文件。我会假设有几个会处理该映射,但他们没有。也许它们不在正确的目录中?我为它们尝试了几种不同的展示位置,但它们产生了相似的结果。 W.A.G:您是否运行了 capture-schema 命令来生成 postgresql 特定的 DDL? docs.oracle.com/cd/E26576_01/doc.312/e24930/…【参考方案2】:

在启动时 Glassfish 尝试为您的 java 代码创建数据库表。它无法做到这一点并且无法启动。

检查您的 ORM 映射器的配置。

【讨论】:

我在哪里可以查看该配置?对于我的无能,我深表歉意,我对 J2EE 应用程序还很陌生,并且搜索文档并没有什么成果。 您的 JPA 提供商是什么?

以上是关于将应用程序部署到 GlassFish Server 时出现问题 - 映射问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何将war文件部署到Glassfish?

在 Glassfish 中部署战争文件失败

部署.war文件时会出现glassfish异常

将 EJB Jar 部署到 Glassfish 时出现异常

GlassFish 5.0 - 不是有效的GlassFish Server安装

Glassfish server.log 压缩和归档