ole*_*leb 8 spring-boot spring-boot-maven-plugin
从Spring Boot 1.3.7升级到1.4.0之后,我们再也无法使用Spring Boot Maven插件将我们的应用程序作为单个jar构建启动.我们的应用程序是使用Jersey和Jetty的小型REST接口.我们使用Maven,我们的pom文件非常标准的Spring Boot.
我们仍然可以mvn spring-boot:run在Eclipse中使用和运行应用程序,但是当作为单个jar运行时,Jersey会ResourceFinder抱怨它无法找到.jar!/BOOT-INF/classes.
当我解压缩jar时,文件夹BOOT-INF/classes存在并包含预期的类和资源.
任何帮助赞赏.
2016-08-10 14:58:31.162 ERROR 16071 --- [ main] o.s.boot.SpringApplication
: Application startup failed
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'jerseyConfig' defined in URL
[jar:file:/acmesource/acme/acme-core/acme-core-api/target/acme-core-api-0.1
SNAPSHOT.jar!/BOOT-INF/classes!/com/acme/core/api/JerseyConfig.class]: Bean
instantiation via constructor failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[com.acme.core.api.JerseyConfig]: Constructor threw exception; nested
exception is
org.glassfish.jersey.server.internal.scanning.ResourceFinderException:
java.io.FileNotFoundException: /acmesource/acme/acme-core/acme-core
api/target/acme-core-api-0.1-SNAPSHOT.jar!/BOOT-INF/classes (No such file or directory)
Run Code Online (Sandbox Code Playgroud)
对可执行jar的布局的更改意味着Jersey的类路径扫描中的限制现在会影响可执行jar文件以及可执行war文件.要解决此问题,您希望由Jersey扫描的类应打包在jar中并作为依赖项包含在其中
BOOT-INF/lib.然后应将Spring Boot启动程序配置为在启动时解压缩这些jar,以便Jersey可以扫描其内容.
| 归档时间: |
|
| 查看次数: |
2918 次 |
| 最近记录: |