从 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 运行时,JerseyResourceFinder
抱怨它找不到.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)