如何将glassfish-resources.xml与分布式.jar文件捆绑在一起?

时间:2013-03-17 10:37:01

标签: java-ee deployment resources glassfish

glassfish docs说:

  

应用程序作用域资源在。中定义   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博士所说的那样做似乎不起作用,或者我有完全错误的东西。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

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

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

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