gpt4 book ai didi

spring-boot - 无法从 spring-boot jersey 运行生成的 jar

转载 作者:行者123 更新时间:2023-12-04 13:48:00 24 4
gpt4 key购买 nike

我无法使用带有 jersey 项目的 spring-boot 运行生成的 jar 文件。

我遇到的异常(exception)是:

Error starting Tomcat context. Exception: org.springframework.beans.factory.UnsatisfiedDependencyException. Message: Error creating bean with name 'org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration': Unsatisfied dependency expressed through constructor parameter 1

当通过 IDE(运行 Main 类)或使用 spring-boot:run 完成时,项目可以正常运行

以下是当前设置的详细信息:

包装:
jar

依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>

我的 Jersey 配置 (ResourceConfig) 设置为扫描包
@Component
public class JerseyConfiguration extends ResourceConfig {

public JerseyConfiguration() {
packages(true, "com.my.base.jaxrs.packages");
}

}

spring-boot-maven-plugin 配置为:

org.springframework.boot
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>

我也没有使用 spring-boot-starter-parent 而是添加了 spring-boot-dependencies,如文档中所示。

最佳答案

我遇到了这个问题,我不想让事情变得太复杂,所以我只是单独注册了我的所有 Jersey Controller 。

@Configuration
public class JerseyConfig extends ResourceConfig {

JerseyConfig() {

// my old version that does not play well with spring boot fat jar
/*
packages(
"com.mycompany.api.resources"
);
*/

register(com.mycompany.api.resources.FooController.class);
register(com.mycompany.api.resources.BarController.class);

}

注意:对于包含许多文件的大型项目,我不建议这样做,它很快就会变得冗长、不可读且维护起来很乏味。
也就是说,这是一个有效的解决方案,您将能够使用通常的 java -jar my-project.jar 运行您的 jar。命令。

关于spring-boot - 无法从 spring-boot jersey 运行生成的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42218999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com