Java JNDI资源名附加了_pm。部署失败
我正在尝试运行一个非常简单的耳朵应用程序。我似乎正好遇到了这个问题,但这里的讨论对我不起作用 在我的例子中,数据源名称也由Java JNDI资源名附加了_pm。部署失败,java,jakarta-ee,netbeans,glassfish,ear,Java,Jakarta Ee,Netbeans,Glassfish,Ear,我正在尝试运行一个非常简单的耳朵应用程序。我似乎正好遇到了这个问题,但这里的讨论对我不起作用 在我的例子中,数据源名称也由\uu pm显示。我不知道它从哪里来,但服务器日志指出,它没有搜索databasename,而是搜索databasename\uu pm,部署失败 Persistence.xml:- <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.0" xmlns="http://java.sun
\uu pm
显示。我不知道它从哪里来,但服务器日志指出,它没有搜索databasename
,而是搜索databasename\uu pm
,部署失败
Persistence.xml:-
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="FCK-ejbPU" transaction-type="JTA">
<jta-data-source>FCKDatabase</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
正如您所看到的,我的资源的JNDI名称以\uu pm
出现
此外,在Glassfish服务器控制台上,资源正确显示为FCKDatabase,而不是FCKDatabase_pm
你知道这个\u pm
是从哪里来的吗
系统:
- Netbeans 7.3
- Glassfish服务器3.1.2
- 由于Netbeans 7.1在IDE生成
persistence.xml
时,jta
字段和glassfish resources
JDNI名称是用前缀java:module/
生成的,因此必须在两个文件中删除它,它必须看起来像jdbc/[anyName]
。这在Netbeans 8.1和Glassfish 4.0上进行了测试
这是我找到的另一个解决方案,它对任何人都有帮助 复制您遇到问题的资源名称,并按照以下步骤操作
重新部署应用程序并检查。在我的例子中,我刚刚移动了我的
glassfish resources.xml
文件
发件人:
my_web_app/src/main/webapp/web-INF
至:
我的web应用程序/src/main/设置
GlassFish开始识别创建资源的文件。我将连接器放在lib和ext文件夹上,但在部署war时仍然存在相同的问题。重新启动和刷新服务器应该可以解决问题。如果它也不起作用,确保将mysql连接器复制到Glassfish上的正确位置:Glassfish/Glassfish/domains/{your_domain}/lib这对我来说很有效,但仅对于jdbc/sample default DB,我无法使用自己的。但无论如何,对于我所需要的,这已经足够了。
Error occurred during deployment: Exception while preparing the app : Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/FCKDatabase__pm), (applicationName=FCK) }. Please see server.log for more details.
Exception while invoking class org.glassfish.persistence.jpa.JPADeployer prepare method : java.lang.RuntimeException: Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/FCKDatabase__pm), (applicationName=FCK) }
Invalid resource : { ResourceInfo : (jndiName=java:app/jdbc/FCKDatabase__pm), (applicationName=FCK) }