【问题标题】:Netbeans 8 + maven + OpenJPA deployed to TomEE - enhancement failNetbeans 8 + maven + OpenJPA 部署到 TomEE - 增强失败
【发布时间】:2023-11-02 20:00:01
【问题描述】:

我在这里找到了一些关于该主题的主题,但没有一个建议对我有用。

我正在尝试使用 Netbeans 8.0 在 TomEE 1.6.0.1 上创建一个简单的“网络配置文件”Java EE 应用程序。只是想连接到一个mysql数据库并显示一些数据来感受一下。

我无法克服这个错误:

未能在项目 TomEETestMaven 上执行目标 org.apache.openjpa:openjpa-maven-plugin:2.2.2:enhance (enhancer):目标 org.apache.openjpa:openjpa-maven-plugin:2.2.2 的执行增强器:enhance failed: MetaDataFactory 无法配置(conf.newMetaDataFactoryInstance() 返回 null)。这可能意味着找不到配置属性。确保您有一个 META-INF/persistence.xml 文件,它在您的类路径中可用,或者您用于配置的属性文件可用。如果您使用的是 Ant,请查看任务嵌套元素的 或 属性。如果您的 OpenJPA 分发 jar 损坏,或者您的安全策略过于严格,也会发生这种情况。 -> [帮助 1]

以下是我在 pom.xml 中添加增强插件的方法,遵循 OpenJPA 站点上的最新文档:

      <plugin>
        <groupId>org.apache.openjpa</groupId>
        <artifactId>openjpa-maven-plugin</artifactId>
        <version>2.2.2</version>
        <configuration>
          <includes>com/myapp/tomeetestmaven/**/*.class</includes>
        </configuration>
        <executions>
          <execution>
            <id>enhancer</id>
            <phase>process-classes</phase>
            <goals>
              <goal>enhance</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>org.apache.openjpa</groupId>
            <artifactId>openjpa-maven-plugin</artifactId>
            <version>2.2.2</version>
          </dependency>
        </dependencies>
      </plugin>

我收到了相互矛盾的报告,有人说这是一个错误,其他人说persistence.xml 文件必须在类路径中(但由于它已经在 src/main/resources/META-INF 中,它安全吗?)我尝试将它移动到 src/main/java 但错误是相同的。

经过几天疯狂的谷歌搜索和测试后,我感到很困惑。任何帮助将不胜感激,谢谢。

【问题讨论】:

  • 老实说,我会尽我所能。我没有和 Maven 结婚。我用一个非 Maven (Ant) web 项目尝试了这个,并得到了我的类需要增强的错误。我可以通过任何方式克服这个增强障碍。
  • 在那里发现了这个:markmail.org/message/vegc4a4brsinscoh 我编辑了 catalina.properties 并添加了这一行:openejb.jpa.deploy-time-enhancement=true 没有运气...没有效果。

标签: java maven netbeans openjpa


【解决方案1】:

在与他博客上的一位乐于助人的人反复讨论之后,知道了。您必须将此行添加到 /conf/system.properties:

openejb.jpa.deploy-time-enhancement=true

【讨论】: