Java Heroku上的Play1应用程序未选择带有Hibernate@FilterDef注释的型号/package-info.class

Java Heroku上的Play1应用程序未选择带有Hibernate@FilterDef注释的型号/package-info.class,java,hibernate,heroku,annotations,playframework-1.x,Java,Hibernate,Heroku,Annotations,Playframework 1.x,当我使用OracleJDK8在本地机器上以开发模式运行应用程序并播放v1.3.1-56-gac02587时,models/package-info.class中定义的@FilterDef注释被正确拾取,应用程序按预期执行 models/package-info.java的定义如下: @FilterDef(name="softDelete", defaultCondition="(deleteTimestamp is null or deleteTimestamp > now())") p

当我使用OracleJDK8在本地机器上以开发模式运行应用程序并播放v1.3.1-56-gac02587时,models/package-info.class中定义的@FilterDef注释被正确拾取,应用程序按预期执行

models/package-info.java的定义如下:

@FilterDef(name="softDelete", defaultCondition="(deleteTimestamp is null or deleteTimestamp > now())")

package models;

import org.hibernate.annotations.FilterDef;
但是,当我将应用程序部署到运行OpenJDK8的Heroku上时,以及它在生产模式下运行的同一播放版本,我得到了以下异常。似乎未拾取在package level@FilterDef注释中定义的默认筛选条件,这表明没有成功加载models/package-info.class

11-09-15 17:55:51,699 [main] ERROR play
Can't start in PROD mode with errors
javax.persistence.PersistenceException: Unable to build EntityManagerFactory
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:925)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
        at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:208)
        at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:515)
        at play.Play.start(Play.java:537)
        at play.Play.init(Play.java:309)
        at play.server.Server.main(Server.java:160)
Caused by: org.hibernate.AnnotationException: no filter condition found for filter softDelete in CommunityMember
        at org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:388)
        at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:602)
        at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625)
        at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579)
        at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
        at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
        at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:918)
        ... 6 more
11-09-15 17:55:51699[主]错误播放
无法在PROD模式下启动,出现错误
javax.persistence.PersistenceException:无法构建EntityManagerFactory
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:925)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
atplay.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:208)
在播放中.plugins.PluginCollection.onApplicationStart(PluginCollection.java:515)
play.play.start(play.java:537)
play.play.init(play.java:309)
at play.server.server.main(server.java:160)
原因:org.hibernate.AnnotationException:在CommunityMember中未找到筛选器softDelete的筛选条件
位于org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:388)
位于org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:602)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579)
位于org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
位于org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:96)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:918)
... 还有6个
不同之处在于Heroku使用预编译类在生产模式下运行应用程序。当我使用“play run-Dprecompiled=true”在本地模拟时,我得到了相同的异常

$ play-13x run -Dprecompiled=true
~        _            _ 
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/   
~
~ play! 1.3.x-1.3.1-43-g3d16160, https://www.playframework.com
~
~ Ctrl+C to stop
~ 
~ using java version "1.8.0_25"
objc[75867]: Class JavaLaunchHelper is implemented in both /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java and /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/lib/libinstrument.dylib. One of the two will be used. Which one is undefined.
Listening for transport dt_socket at address: 8000
13:38:05,265 [main] INFO  ~ Starting
:: loading settings :: url = jar:file:/usr/local/play-1.3.x-1.3.1-43-g3d16160/framework/lib/ivy-2.4.0.jar!/org/apache/ivy/core/settings/ivysettings.xml
13:38:05,543 [main] INFO  ~ Module crud is available (/usr/local/play-1.3.x-1.3.1-43-g3d16160/modules/crud)
13:38:05,543 [main] INFO  ~ Module fastergt is available (/Users/chris/git/PTAsocial-MVP/modules/fastergt-1.8)
13:38:05,543 [main] INFO  ~ Module db is available (/Users/chris/git/PTAsocial-MVP/modules/db-1.1.2)
13:38:05,544 [main] INFO  ~ Module accesslog is available (/Users/chris/git/PTAsocial-MVP/modules/accesslog-1.2)
13:38:05,544 [main] INFO  ~ Module deadbolt is available (/Users/chris/git/PTAsocial-MVP/modules/deadbolt-1.5.4)
13:38:05,544 [main] INFO  ~ Module coffee is available (/Users/chris/git/PTAsocial-MVP/modules/coffee-1.0)
13:38:05,544 [main] INFO  ~ Module securesocial is available (/Users/chris/git/PTAsocial-MVP/modules/securesocial-0.2.7)
13:38:05,544 [main] INFO  ~ Module morphia is available (/Users/chris/git/PTAsocial-MVP/modules/morphia-1.5.0a)
13:38:05,760 [main] INFO  ~ Loaded image cleaner plugin
13:38:06,817 [main] INFO  ~ Application is precompiled
13:38:06,826 [main] DEBUG ~ MorphiaPlugin-1.5.0> reading configuration
13:38:08,072 [main] INFO  ~ Connected to jdbc:h2:mem:play;MODE=MYSQL for default
13:38:08,253 [main] INFO  ~ JPA -> Adding package: models
13:38:08,526 [main] ERROR ~ Can't start in PROD mode with errors
javax.persistence.PersistenceException: Unable to build EntityManagerFactory
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:925)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
    at play.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:208)
    at play.plugins.PluginCollection.onApplicationStart(PluginCollection.java:515)
    at play.Play.start(Play.java:537)
    at play.Play.init(Play.java:309)
    at play.server.Server.main(Server.java:160)
Caused by: org.hibernate.AnnotationException: no filter condition found for filter softDelete in CommunityMember
    at org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:388)
    at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:602)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625)
    at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:96)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:918)
    ... 6 more
$play-13x run-Dprecompiled=true
~        _            _ 
~  _ __ | | __ _ _  _| |
~ | '_ \| |/ _' | || |_|
~ |  __/|_|\____|\__ (_)
~ |_|            |__/   
~
~z~玩吧!1.3.x-1.3.1-43-g3d16160,https://www.playframework.com
~
~Ctrl+C停止
~ 
~使用java版本“1.8.0_25”
objc[75867]:类JavaLaunchHelper在/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/Java和/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/jre/libinstrument.dylib中实现。将使用其中一个。哪一个是未定义的。
正在侦听地址为8000的传输dt_插座
13:38:05265[主]信息~启动
::加载设置::url=jar:file:/usr/local/play-1.3.x-1.3.1-43-g3d16160/framework/lib/ivy-2.4.0.jar/org/apache/ivy/core/settings/ivysettings.xml
13:38:05543[主]信息~模块crud可用(/usr/local/play-1.3.x-1.3.1-43-g3d16160/模块/crud)
13:38:05543[main]信息~模块fastergt可用(/Users/chris/git/PTAsocial MVP/modules/fastergt-1.8)
13:38:05543[main]信息~模块数据库可用(/Users/chris/git/PTAsocial MVP/modules/db-1.1.2)
13:38:05544[main]信息~模块访问日志可用(/Users/chris/git/PTAsocial MVP/modules/accesslog-1.2)
13:38:05544[main]信息~模块死锁可用(/Users/chris/git/pta社会MVP/modules/deadbolt-1.5.4)
13:38:05544[main]信息~模块咖啡可用(/Users/chris/git/pta社交MVP/modules/coffee-1.0)
13:38:05544[main]信息~模块securesocial可用(/Users/chris/git/PTAsocial MVP/modules/securesocial-0.2.7)
13:38:05544[main]信息~模块morphia可用(/Users/chris/git/PTAsocial MVP/modules/morphia-1.5.0a)
13:38:05760[主]信息~加载的图像清理器插件
13:38:06817[主]信息~应用程序已预编译
13:38:06826[main]调试~MorphiaPlugin-1.5.0>读取配置
13:38:08072[main]INFO~连接到jdbc:h2:mem:play;默认情况下MODE=MYSQL
13:38:08253[main]INFO~JPA->添加包:型号
13:38:08526[main]错误~无法在有错误的PROD模式下启动
javax.persistence.PersistenceException:无法构建EntityManagerFactory
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:925)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:900)
atplay.db.jpa.JPAPlugin.onApplicationStart(JPAPlugin.java:208)
在播放中.plugins.PluginCollection.onApplicationStart(PluginCollection.java:515)
play.play.start(play.java:537)
play.play.init(play.java:309)
at play.server.server.main(server.java:160)
原因:org.hibernate.AnnotationException:在CommunityMember中未找到筛选器softDelete的筛选条件
位于org.hibernate.cfg.annotations.EntityBinder.bindEntity(EntityBinder.java:388)
位于org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:602)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:3625)
位于org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3579)
位于org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1381)
位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1786)
位于org.hibernate.ejb.EntityManagerFactoryImpl。(EntityManagerFactoryImpl.java:96)
位于org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:918)
... 6.