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