当前位置: 首页 > 知识库问答 >
问题:

spring cloud netflix jersey版本冲突

巩镜
2023-03-14

你好,我有一个Spring Boot应用程序,正在使用

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
    </dependency>

这取决于泽西版本2.7。

当试图使用

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

在内部使用泽西版本1.1时,应用程序会失败,因为同一个库有两个不同的版本。

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

谢谢

java.lang.NoSuchMultiodError:javax.ws.rs.core.pplication.get属性()Ljava/util/Map; atorg.glassfish.jersey.server.Application ationHandler.(应用andler.java:303)在org.glassfish.jersey.server.应用程序处理程序。应用程序Handler.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)在io.undertow.servlet.core.LifeyleInterceptorInvocation.proceed(LifeyleInterceptorInvocation. java: 117)在io. undertowo. servlet. core。ManagedServlet$DefaultInstanceStratex. start(ManagedServlet. java: 220)位于io. undertowa. servlet. core。getServlet(ManagedServlet. java: 163)at io. undertowo. servlet. handler。ServletHandler. handleRequest(ServletHandler. java: 84)at io. undertowa. servlet. handler。处理请求(FilterHandler. java: 82)

共有3个答案

家浩瀚
2023-03-14

我设法解决了我的问题,这不是最好的,但它工作得很好,我制作了一个精简版的库,用一个cxf库替换了jersey客户端,它工作得很好。

https://github.com/MicroIdeas/service-registry/tree/master/src/main/java/co/microideas/framework

鲁辉
2023-03-14

嗯,那不好。泽西1号和2号有显著差异。我认为您唯一的选择是删除SpringBootStarterJersey并将代码转换为jersey 1.1。

可能值得一看SpringBootStarterJersey代码,看看它在自动配置东西时给了您什么,这可能会帮助您编写代码。

这是非常不幸的,因为SpringBoot应该为您提供一组精心策划的、兼容的依赖项,但看起来SpringCloudStarterEureka还没有被折叠到SpringBoot中,所以您只能使用旧的API。

马晓博
2023-03-14

通过指定以下内容,我已通过spring cloud获得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>

唯一的问题是测试还没有运行。但我们仍在努力找到解决问题的全面办法。

 类似资料:
  • 问题内容: 作为测试项目,我使用wsdl和jax- ws创建了一个非常简单的WebService。如果客户端作为GlassFish中的Web应用程序部署,则客户端运行得很好,但是如果我直接在Eclipse中启动相同的(WebService-)代码,则会收到以下错误: 经过研究,我发现它与某些版本的库文件有一定关系。所以现在我的问题是,如何才能“修复” Eclipse Java执行以正确运行我的We

  • 我正在使用Maven和Jetty作为服务器开发RestEasy Web服务。其中一个服务应该使用扩展javax.servlet.http.HttpServletReportseWrapper的Filter。问题在于来自servlet-api 2.3的接口javax.servlet.ServletReages的方法集特征编码。我得到了以下异常 我已经规范了servlet-api 2.4依赖项,但也尝

  • 问题内容: 在我自己滚动之前,是否有io.Pipe的缓冲版本(在标准库中还是在第三方库中)? 上下文:我正在尝试使用该解决方案来解析使用bzip2压缩的JSON数据,以便解压缩和解析是并行进行的,但是发现加速非常小。解析未压缩的数据每百万条记录大约需要22秒。解压缩大量数据大约需要相同的时间。如预期的那样,在单线程上完成它们大约需要44秒。使用上述解决方案大约需要41秒。 io.Pipe的文档说:

  • 我正在尝试使用NuGet Package Manager控制台将更改部署到数据库。当我发出命令时,该命令失败,并显示一条错误消息: 我的项目目标。NET 4.5.2,据我所知,它提供了在版本。因此,关联库不会放在二进制输出目录中。当我下载版本(Nuget包版本4.3.2)并将其复制到二进制输出目录,以及我的DLL时,我会收到另一条错误消息: 在这两种情况下,例外情况都是并将其抛出到Microsof

  • 我正在开发一个应用程序和一个库(Android模块)。它们在不交互时没有问题:在导入库后,Android Studio搞乱了设置,我无法恢复。 和其他98个类似的:都与主题问题有关。 还有其他消息引用值、,例如: