您好我有一个使用
的Spring启动应用程序 <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
</dependency>
这取决于Jersey版本2.7。
尝试使用时
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
内部使用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) 在org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:358) 在javax.servlet.GenericServlet.init(GenericServlet.java:158) at io.undertow.servlet.core.LifecyleInterceptorInvocation.proceed(LifecyleInterceptorInvocation.java:117) at io.undertow.servlet.core.ManagedServlet $ DefaultInstanceStrategy.start(ManagedServlet.java:220) at io.undertow.servlet.core.ManagedServlet.getServlet(ManagedServlet.java:163) at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:84) 在io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:82)
答案 0 :(得分:3)
通过指定以下内容,我已经通过Spring云实现了Jersey 2和Eureka客户端的设置:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>javax.ws.rs</groupId>
<artifactId>jsr311-api</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
但唯一的问题是测试尚未运行。但我们仍在努力找到问题的完整解决方案。
答案 1 :(得分:0)
看看spring-boot-starter-jersey代码可能值得看看它在自动配置时给你的东西,这可能对你的编码有所帮助。
非常不幸,因为Spring引导应该为您提供一组策划的,兼容的依赖项,但看起来spring-cloud-starter-eureka还没有被折叠到Spring引导中,所以你很难使用旧的API。
答案 2 :(得分:0)
我设法解决了我的问题,这不是最好的,但它有效,我已经制作了一个脱模版本的库,用cxf库替换了jersey客户端,它运行得很好。
https://github.com/MicroIdeas/service-registry/tree/master/src/main/java/co/microideas/framework
答案 3 :(得分:0)
我遇到了同样的问题,直到我将spring-boot-starter-jersey移动到依赖项的顶部。这似乎彻底治愈了它。