我有一个由于缺乏知识而引起的问题。我使用 OpenJPA 作为 JPA 实现和 Tomcat 服务器来运行我的应用程序,我也使用 Idea12 作为 ide。
我有一个任务——在构建时提供开放的 jpa 增强。为了实现这一点,首先我拒绝 OpenJPA 通过将此属性添加到我的 persistence.xml 来增强运行时的实体:
<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported"/>
现在 OpenJPA 不会像我希望的那样在运行时增强类。
之后,我在我的 ant-build.xml 中编写了一个增强目标。它工作正常,并使用已编译的类创建 /build 目录。如果我查看编译的类代码,我会看到 OpenJPA 的其他字段 - pcStateManager 和其他。太棒了。
现在的问题是——当我通过 Idea 启动 Tomcat 时,它不需要我的增强类。我猜Tomcat甚至不知道我增强了我的课程。似乎他再次编译代码,并使用未增强的类启动应用程序。当然,当我开始使用数据库时,会有一个例外。
那么,是否可以配置 Tomcat,让他从 /build 目录中获取我的课程?
PS我也尝试使用一些Idea插件进行增强,但它们并没有解决问题 - 我有同样的例外,即类没有增强。
upd两个增强创意插件:OpenJPA 增强器和 Data Nucleas 与 OpenJPA 扩展的集成都不能解决问题。所以这让我觉得,有些事情出了问题。也许主要问题是tomcat设置?