问题描述
从Spring Boot 1.3.7升级到1.4.0后,我们无法再使用Spring Boot Maven插件作为单个jar构建来启动我们的应用程序.我们的应用程序是一个使用Jersey和Jetty的小型REST接口.我们使用Maven,而pom文件是非常标准的Spring Boot.
After upgrading from Spring Boot 1.3.7 to 1.4.0 we can no longer start our application as a single jar build with the Spring Boot Maven plugin. Our application is a small REST interface using Jersey and Jetty. We use Maven and our pom file is pretty standard Spring Boot.
我们仍然可以使用mvn spring-boot:run
并从Eclipse中运行该应用程序,但是当作为单个jar球衣运行时,ResourceFinder
抱怨它找不到.jar!/BOOT-INF/classes
.
We can still run the application using mvn spring-boot:run
and from within Eclipse, but when run as a single jar Jersey ResourceFinder
complains that it cannot find .jar!/BOOT-INF/classes
.
当我打开罐子的包装时,文件夹BOOT-INF/classes
存在,其中包含预期的类和资源.
When I unpack the jar the folder BOOT-INF/classes
is present and contains the expected classes and resources.
任何帮助表示赞赏.
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)
推荐答案
这篇关于从Spring Boot 1.3.7升级到1.4.0后Single jar启动失败的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!