我正在通过使用DataNucleus作为我的JPA提供程序编写应用程序来学习JavaEE。我使用Eclipse IDE和Apache Tomcat服务器进行测试,因此我希望设置运行时增强功能以避免在每次测试部署时都使用字节编译类。使用Tomcat和Eclipse进行DataNucleus JPA运行时增强
按documentation,我已将此添加到我的persistence.xml文件:
<property name="datanucleus.jpa.addClassTransformer" value="true"/>
然而,我的课没有得到反正增强。该错误消息我得到的是:
org.datanucleus.exceptions.NucleusUserException: Found Meta-Data for
class pbf.model.Message but this class is either not enhanced or you
have multiple copies of jdo-api.jar in your CLASSPATH!! Make sure all
persistable classes are enhanced before running DataNucleus and/or the
CLASSPATH is correct.
该文档是对阉的Java EE有些模糊,需要在命令行上指定javaagent了。如果是这样,我如何在Eclipse中使用Tomcat服务器来做到这一点?启动服务器时,我看不到自定义命令行和/或Java参数的选项。
我使用从maven存储库下载的datanucleus-accessplatform-jpa-rdbms v.3.3.0-release以及所有依赖项。
现在,Tomcat为org.datanucleus.state.JDOStateManager抱怨NoClassDefFoundError ,尽管它显然是在一个罐子里。如果我改变为“真正的”JavaEE服务器,它会有帮助吗? – Red
是的,那么相关的lib文件夹中的datanucleus-core的deps也是?例如,jdo-api.jar – DataNucleus