问题是在Eclipse-IDE中,每个使用Ebean相关方法的测试都可以正常工作,但是当你编译一个jar-File来使用它时,例如在主页上,或在命令提示符下,我只能得到这个
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.util.ClassPathSearch find
Classes
Warnung: No Entities found in ClassPath using ClassPathReader [com.avaje.ebeanin
ternal.server.util.DefaultClassPathReader@6c08bae7] Classpath Searched[[file:/C:
/xampp/htdocs/webp3/jars/DPG.jar]]
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.core.BootupClassPathSearc
h search
Information: Classpath search hits in jars[] pkgs[] searchTime[27]
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.lib.sql.DataSourcePool in
itialise
Information: DataSourcePool [mysql] autoCommit[false] transIsolation[READ_COMMIT
TED] min[1] max[25]
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.core.DefaultServerFactory
setDatabasePlatform
Information: DatabasePlatform name:mysql platform:mysql
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.subclass.SubClassManager$
1 run
Information: SubClassFactory parent ClassLoader [sun.misc.Launcher$AppClassLoade
r]
Jul 10, 2012 4:25:48 PM com.avaje.ebeaninternal.server.deploy.BeanDescriptorMana
ger logStatus
Information: Entities enhanced[0] subclassed[0]
Exception in thread "main" javax.persistence.PersistenceException: com.dpu.entit
ies.Department is NOT an Entity Bean registered with this server?
at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(Default
Server.java:1008)
at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(Default
Server.java:965)
at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.
java:1001)
at com.avaje.ebean.Ebean.find(Ebean.java:1143)
at com.dpu.data.Datagenerator.generateData(Datagenerator.java:26)
at com.dpu.main.MainGenerator.main(MainGenerator.java:23)
我在google上尝试了许多“解决方案”,比如编辑Classpath,但是在日志中似乎一切都很好。
My JAR-Manifest contains this:
Manifest-Version: 1.0
Main-Class: com.dpu.main.MainGenerator
Class-Path: .
有人知道如何解决这个愚蠢的问题吗?我今天尝试了一切,这只是烦人的
答案 0 :(得分:2)
除了user1537597的答案,您可以添加
# specify jars to search for entity beans
ebean.search.jars=myJarFile.jar
到ebean.properties文件,如果你不使用程序化配置。
答案 1 :(得分:0)
同样在这里。 唯一的方法是提取jar并运行java主类。您还需要将ebean.properties文件放在项目的根目录中。
e.g:
jar xf project.jar
cp /my_project_root/ebean.properties project
cd project
java Project
答案 2 :(得分:0)
不是这取决于你需要在ebean.properties中指定在jar中查找实体的事实。我正在寻找如何从属性文件中做到这一点。现在我只找到了程序化配置。
config.addJar( “nameFile.jar”)
答案 3 :(得分:0)
我设法通过使用程序化配置并手动添加每个实体类来解决这个问题:
serverConfig.addClass(Entity.class);
与ebean.search.jars=yourJar.jar
相比,此方法的优点是,如果jar文件名更改,它仍然有效。
答案 4 :(得分:0)
您还可以将以下内容添加到ebean.properties
ebean.packages=com.packagename