0

我有一个工作的 Spring Boot 应用程序。我更改了应用程序以从 Spring Cloud Config 服务器读取其配置。我在 pom 中添加了 bootstrap.properties 和以下依赖项:

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
</dependency>

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>

spring cloud的版本是2020.0.4。该应用程序成功地从配置服务器检索其配置。但是,端点失败并出现以下错误:

in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: 'void javax.ws.rs.core.MultivaluedMap.addAll(java.lang.Object, java.lang.Object[])'] with root cause
java.lang.NoSuchMethodError: 'void javax.ws.rs.core.MultivaluedMap.addAll(java.lang.Object, java.lang.Object[])'

我已经在调试模式下运行启动应用程序以查看 Tomcat 类路径是什么。在添加 Spring Cloud Config 之前,只有

jakarta.ws.rs-api-2.1.6.jar

在类路径上。但是在添加配置服务器依赖项后

jsr311-api-1.1.1.jar 出现在 Jakarta 库之前的 Tomcat 类路径上,因此会发生这种情况。

我不确定为什么向我的 pom 添加 Spring Cloud Config 依赖项并添加属性文件会导致对类路径的添加。

我正在使用 mvn spring-boot:run 运行/构建应用程序。

我该如何解决这个问题?

更新:似乎jsr311-api-1.1.1.jar被拉进来了spring-cloud-starter-netflix-eureka-client

谢谢你。

4

1 回答 1

0

我已将以下内容添加到我的 pom.xml 中,并且可以成功访问我的应用程序端点。

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        <exclusions>
              <exclusion>
                    <groupId>javax.ws.rs</groupId>
                    <artifactId>jsr311-api</artifactId>
              </exclusion>
        </exclusions>
</dependency>
于 2021-11-02T21:00:49.720 回答