3

问题是,在 Eclipse-IDE 中,使用 Ebean 相关方法的每个测试都可以正常工作,但是当您编译 jar 文件以使用它时,例如在主页或命令提示符下,我只能得到这个

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)

我在谷歌上尝试了许多“解决方案”,比如编辑类路径,但日志上的一切似乎都很好。

My JAR-Manifest contains this:
Manifest-Version: 1.0
Main-Class: com.dpu.main.MainGenerator
Class-Path: .

有人知道如何解决这个愚蠢的问题吗?我今天尝试了所有方法,这很烦人

4

5 回答 5

2

或者,您可以添加 user1537597 的答案

# specify jars to search for entity beans  
ebean.search.jars=myJarFile.jar

到 ebean.properties 文件,如果您不使用编程配置。

于 2013-03-02T17:02:43.160 回答
1

您还可以将以下内容添加到 ebean.properties

ebean.packages=com.packagename
于 2017-02-16T15:01:55.840 回答
0

同样在这里。唯一的方法是提取 jar 并运行 java 主类。您还需要将 ebean.properties 文件放在项目的根目录中。

例如:

jar xf project.jar

cp /my_project_root/ebean.properties project

cd project

java Project
于 2012-07-11T22:39:57.117 回答
0

不取决于您需要在 ebean.properties 中指定以在 jar 中查找实体的事实。我正在寻找如何从属性文件中做到这一点。现在我只发现了程序化配置。

config.addJar("nameFile.jar")

于 2012-08-03T10:11:33.693 回答
0

I managed to solve this by using a programmatic configuration and adding every entity class manually like this:

serverConfig.addClass(Entity.class);

The advantage of this approach compared to ebean.search.jars=yourJar.jar is that if the jar file name changes, it will still work.

于 2013-11-07T12:37:17.937 回答