Java play framework 2.1 junit测试无法在eclipse中运行
我在学习zentask教程并编写了junit测试, 测试不会从EclipseIDE运行,它会给出以下异常Java play framework 2.1 junit测试无法在eclipse中运行,java,eclipse,playframework-2.0,playframework-2.1,Java,Eclipse,Playframework 2.0,Playframework 2.1,我在学习zentask教程并编写了junit测试, 测试不会从EclipseIDE运行,它会给出以下异常 javax.persistence.PersistenceException: java.lang.IllegalStateException: Class [class play.db.ebean.Model] is enhanced and [class models.User] is not - (you can not mix!!) at com.avaje.ebeanint
javax.persistence.PersistenceException: java.lang.IllegalStateException: Class [class play.db.ebean.Model] is enhanced and [class models.User] is not - (you can not mix!!)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1475)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1138)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1058)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565)
at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252)
at com.avaje.ebeaninternal.server.core.InternalConfiguration.<init>(InternalConfiguration.java:124)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210)
at com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64)
javax.persistence.PersistenceException:java.lang.IllegalStateException:Class[Class play.db.ebean.Model]得到了增强,[Class models.User]没有得到增强—(您不能混合!!)
在com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1475)
位于com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.createByteCode(BeanDescriptorManager.java:1138)
位于com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readDeployAssociations(BeanDescriptorManager.java:1058)
位于com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.readEntityDeploymentAssociations(BeanDescriptorManager.java:565)
位于com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.deploy(BeanDescriptorManager.java:252)
位于com.avaje.ebeaninternal.server.core.InternalConfiguration.(InternalConfiguration.java:124)
位于com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:210)
位于com.avaje.ebeaninternal.server.core.DefaultServerFactory.createServer(DefaultServerFactory.java:64)
我读了一些书,发现对一些人来说
编辑buils.scala在main中添加以下行有助于:ebeanEnabled:=true
对我来说,关闭运行play clean compile的ide并不是件容易的事
有什么想法吗?关于设置在IDE中运行的单元测试。建议在运行测试时使用的java中添加以下命令行:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar
似乎Play不是ebean代理附带的,它应该首先从ebean网站下载(在主要的ebean包中)
我没有试过
还提到了它(15.5.2JavaAgent部分),甚至还有配置Eclipse的示例
此外,为了加快增强速度,这可能会更好:
-javaagent:/path/to/ebean/ebean-2.7.3-agent.jar;packages=models.*
因此,它将只查看
模型。*
(ORM模型的默认软件包正在使用)。当我试图从扩展模型的一个类的声明中删除公共修饰符时,出现了这个错误
我使用了一个模型来创建一个“直通”表(与附加信息的多对多关系),因此受保护的访问是有意义的。也许还有另一种方法可以做到这一点,但是播放javadoc是相当稀少的。您可以使用Avaje Ebean Eclipse插件:
安装完成后,右键单击您的项目并选择Enable Ebean enhancement来激活Ebean enhancement。我在Play 2.1.5中使用avaje-ebeanrom-agent-3.2.2.jar尝试了这一点,但除了在控制台中给出以下消息外,它似乎没什么作用:transform>cls:Play/db/Ebean/Model msg:。。。忽略字段\u ebean_intercept@Splaktar请使用jar ebean-2.7.3-agent.jar,它将工作(现在使用play 2.2.6)升级到play 2.3.7,现在一切正常!