Spring boot,runnable jar 无法加载 package-info.class

Vic*_*ing 0 spring jar executable-jar spring-boot package-info

我们使用带有休眠数据库映射的 Spring Boot。实体包含映射为使用package-info.java文件定义的自定义类型的 JSON 列。

当我们从 Eclipse IDE 运行 spring-project 时,一切正常,我们可以调用我们的 Web 服务。

当我们生成一个可执行的 jar 并尝试调用我们的 Web 服务时,会引发以下错误:

mai 04, 2017 1:35:00 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.RuntimeException: Unable to execute job Test] with root cause
java.lang.NoClassDefFoundError: BOOT-INF/classes/com/test/package-info (wrong name: com/test/package-info)
    at java.lang.ClassLoader.defineClass1(Native Method)
Run Code Online (Sandbox Code Playgroud)

文件 package-info.class 进入 jar BOOT-INF/classes/com/test/package-info 有什么问题?

谢谢你的帮助

小智 5

我通过禁用 Hibernate 分类的包扫描和自动检测解决了这个问题

<persistence-unit name="sqlProvider" transaction-type="RESOURCE_LOCAL">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>     
    <class>com.example.package.dao</class>

    .........     
    <properties>
        <property name="exclude-unlisted-classes" value="true"/>
        <property name="hibernate.archive.autodetection" value="hbm" />
        .........
    </properties>
    .........
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)