2

glassfish 文档说:

应用程序范围的资源在 glassfish-resources.xml 部署描述符文件中定义。该文件位于模块或应用程序存档的 META-INF 目录中。

然而,情况似乎并非如此。当我这样做并将 .jar 文件部署到我的 Glassfish 3.1.2 服务器时,他抛出了几个异常,并说:

准备应用程序时出现异常:资源无效:jdbc/malivechat-db-ds__pm

我的资源的 JNDI 名称实际上是“jdbc/malivechat-db-ds”。所以我不明白下划线“__pm”来自哪里(?)。但是,如果我单独添加我的资源,比如我通过管理控制台执行此操作,或者让 Netbeans 为我部署包,一切正常。

有没有办法将 glassfish-resources.xml 文件与我们分发的 .jar 文件捆绑在一起?

在我看来,它必须如此。虽然添加资源似乎是特定于应用程序服务器的(为什么?我的意思是为什么“glassfish-resources.xml”而不仅仅是“resources.xml”?),当然应该有一种方法来添加所有供应商特定的 *-resources.xml 文件到我们的 .jar 文件,从而“支持”一组不同的应用程序服务器?

无论哪种方式,按照 glassfish 文档所说的方式进行操作似乎都行不通,或者我完全错了。

4

2 回答 2

0

我有同样的问题。我通过在资源名称中指定 JNDI 应用程序命名空间来解决它。尝试将 JNDI 资源名称更改glassfish-resources.xml为如下所示: jndi-name="java:app/malivechat-db-ds"

并使用相同的语法查找您的资源。例如在persistence.xml

<jta-data-source>java:app/malivechat-db-ds</jta-data-source>

于 2016-11-04T14:45:13.667 回答