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

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


    • 由于Netbeans 7.1在IDE生成
      persistence.xml
      时,
      jta
      字段和
      glassfish resources
      JDNI名称是用前缀
      java:module/
      生成的,因此必须在两个文件中删除它,它必须看起来像
      jdbc/[anyName]
      。这在Netbeans 8.1和Glassfish 4.0上进行了测试


      这是我找到的另一个解决方案,它对任何人都有帮助

      复制您遇到问题的资源名称,并按照以下步骤操作

    • 登录到Glassfish控制台
    • 后藤资源
    • JDBC-->JDBC资源
    • 单击“新建”按钮添加资源
    • 在JNDI名称字段中输入复制的资源,选择池名称并输入描述
    • 点击Ok按钮

    • 重新部署应用程序并检查。

      在我的例子中,我刚刚移动了我的
      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) }