春云netflix球衣版冲突

use*_*032 5 java spring jersey spring-boot spring-cloud

您好我有一个正在使用的Spring启动应用程序

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

这取决于Jersey版本2.7.

试图使用时

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

内部使用Jersey版本1.1,由于同一个库的两个不同版本,应用程序失败.

关于如何解决这个问题的任何建议,我试图只使用版本2.7,但它们似乎彼此不兼容

谢谢

java.lang.NoSuchMethodError:javax.ws.rs.core.Application.getProperties()Ljava/util/Map; 在Org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:303)org.glassfish.jersey.server.ApplicationHandler.(ApplicationHandler.java:284)org.glassfish.jersey.servlet.WebComponent.(WebComponent. java:311)org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:168)atg.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358)at javax.servlet.GenericServlet.init (GenericServlet.java:158)io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(lifecyleInterceptorInvocation.java:117)at io.undertow.servlet.core.ManagedServlet $ DefaultInstanceStrategy.start(ManagedServlet.java:220)at io. undero.servlet.core.ManagedServlet.getServlet(ManagedServlet.java:163)at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:84)at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler. Java的:82)

Pau*_*NUK 0

嗯,这样不好。球衣 1 和 2 明显不同。我认为您唯一的选择是删除 spring-boot-starter-jersey 并将代码删除到 Jersey 1.1。

可能值得查看 spring-boot-starter-jersey 代码,看看它在自动配置内容时为您提供了什么,这可能会对您的编码有所帮助。

这是非常不幸的,因为 Spring boot 应该为您提供一组精选的、兼容的依赖项,但看起来 spring-cloud-starter-eureka 尚未合并到 Spring boot 中,因此您只能使用旧的 API。