Eclipselink静态编织和Spring Boot无法正常工作

时间:2016-10-08 16:17:27

标签: maven spring-boot eclipselink

在Spring Boot项目中,我们使用Eclipselink作为ORM。我们将构建配置为静态编织并打包为jar。有趣的是,使用mvn spring-boot:run启动程序没有问题,但从java -jar archive.jar开始只有在persistence.xml中列出所有实体时才有效。如果没有persistence.xml中的类,我会收到错误:

java.lang.IllegalArgumentException: No [ManagedType] was found for the key class [eltest.Customer] in the Metamodel - please verify that the [Managed] class was referenced in persistence.xml using a specific <class>eltest.Customer</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element

同样在这种情况下,当我们将程序打包为战争时,它会毫无问题地启动。

我的问题是:mvn spring-boot:run是否完全调用静态编织,还是在加载时编织?与战争部署相同:当Tomcat启动应用程序时,war-build是否真的调用静态编织,还是隐式触发编织?有没有办法避免在persistence.xml中列出类,还是在jar包装中进行静态编织?

以下是一个例子:

https://github.com/gfinger/eltest

使用mvn clean package构建它。如果以mvn spring-boot:run启动它,它使用Spring Data Rest将Customer实体公开为REST资源。如果您使用java -jar target/static-eclipselink-0.0.1-SNAPSHOT.jar启动它,则会收到错误。

0 个答案:

没有答案