JNDI资源名称附加__pm.部署失败

roc*_*tar 10 java ear netbeans glassfish java-ee

我正在尝试运行一个非常简单的耳朵应用程序.我似乎遇到了这个问题,但这里的讨论对我来说不适用于 由容器修改的JDBC资源名称(__pm附加到它)

在我的例子中,数据源名称也被添加__pm.我不知道它来自何处,但服务器日志指出的是,不是搜索databasename它而是搜索databasename__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>
Run Code Online (Sandbox Code Playgroud)

Glassfish日志:

  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) }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我的资源的JNDI名称已被附加__pm.

同样在Glassfish服务器控制台上,资源正确显示为FCKDatabase而不是FCKDatabase_pm

知道这__pm是从哪里来的吗?

系统:

  • Netbeans 7.3
  • Glassfish Server 3.1.2

roc*_*tar 6

问题是mysql连接器jar文件没有放入glassfish服务器.这引发了一系列问题.我上面发布的那个只是服务器日志包含的错误消息之一.我建议浏览整个错误消息列表并尝试从那里进行调试.以下链接帮助我将jar文件放在正确的位置: