请您帮我解决这两个问题/问题:
任何曾经参与Jackson 2.9.2工作的人都可以让我知道Jackson 2.9.2的兼容泽西版本是什么。我目前正在使用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)一般情况下,是否有某种方法可以找到罐子的组合。我在找到泽西和春天罐子的正确组合的同时也遇到了这个问题。如果有人的话,它会拯救我和其他人面临同样的问题。可以指导这个。
感谢。
答案 0 :(得分:2)
截至2017年11月中旬,泽西岛的最新版本为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。
杰克逊2.5中已弃用BeanUtil.okNameForSetter(Annotated Method)
方法,并且已在Jackson 2.9中删除。
要支持最新版本的Jackson,您可以摆脱jersey-media-json-jackson
扩展模块。
然后将jackson-jaxrs-json-provider
模块添加到您的项目中,并直接在JacksonJsonProvider
或ResourceConfig
实施中注册Application
。
答案 1 :(得分:0)
我遇到如下相同的错误:
[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