【问题标题】:What are the Jersey versions compatible with Jackson 2.9.2与 Jackson 2.9.2 兼容的 Jersey 版本有哪些
【发布时间】:2018-04-25 12:15:33
【问题描述】:

您能帮我解决这两个疑问/问题吗:

任何曾经在 Jackson 2.9.2 上工作过的人都可以告诉我 Jackson 2.9.2 的兼容 Jersey 版本是什么。我目前正在使用 Jersey 2.23.2,但它不适用于 Jackson 2.9.2。我明白了以下错误:

[ERROR   ] SRVE0777E: Exception thrown by application class 'org.glassfish.jersey.servlet.WebComponent.serviceImpl:489'
javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.util.BeanUtil.okNameForSetter(Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod;)Ljava/lang/String;
    at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489)
    at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)
    at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)
    at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290)

2)一般来说,有没有办法找到罐子的组合。我之前也遇到过这个问题,同时找到了泽西罐和弹簧罐的正确组合。如果有人的话,它将为我和其他人面临同样的问题节省很多时间可以指导一下。

谢谢。

【问题讨论】:

    标签: jersey-2.0 jackson2 jackson-databind


    【解决方案1】:

    截至 2017 年 11 月中旬,Jersey 的最新版本是 2.26。

    Jersey 通过jersey-media-json-jackson 扩展模块支持Jackson,该扩展模块与Jersey 核心模块的版本号相同。此扩展模块包含可自动发现的 JacksonFeature,它注册了 JacksonJsonProvider 类以将 JSON 绑定到 Java 对象。

    在 2.26 版本中,此扩展依赖于 Jackson 2.8.4。在 2.23.2 版本中,它依赖于 Jackson 2.5.4。

    BeanUtil.okNameForSetter(Annotated Method) 方法在 Jackson 2.5 中已弃用,并已在 Jackson 2.9 中删除。


    要支持最新版本的 Jackson,您可以去掉 jersey-media-json-jackson 扩展模块。

    然后将jackson-jaxrs-json-provider 模块添加到您的项目中,并直接在您的ResourceConfigApplication 实现中注册JacksonJsonProvider

    【讨论】:

      【解决方案2】:

      我收到与以下相同的错误:

      [ERROR   ] SRVE0777E: Exception thrown by application class 'org.glassfish.jersey.servlet.WebComponent.serviceImpl:489'
      javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: 
      java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.util.BeanUtil.okNameForSetter(Lcom/fasterxml/jackson/databind/introspect/AnnotatedMethod;)Ljava/lang/String;
      

      我能够用

      解决上述问题
      Jersey2 version: 2.23.2
      Jackson version: 2.7.4
      

      【讨论】:

        猜你喜欢
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 2019-09-08
        • 1970-01-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多