请问Jackson的XmlMapper为什么在Wildfly下不能工作?
求教~~
代码如下
try { XmlMapper xmlMapper = new XmlMapper(); return xmlMapper.writeValueAsString(object); } catch(JsonProcessingException e) { e.printStackTrace(); return null; }
在Tomcat下正常,在WildFly下报错
16:05:40,231 ERROR [stderr] (ServerService Thread Pool -- 28) Caused by: java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter(Lcom/fasterxml/jackson/core/PrettyPrinter;)Lcom/fasterxml/jackson/databind/SerializationConfig; 16:05:40,231 ERROR [stderr] (ServerService Thread Pool -- 28) at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:86) 16:05:40,231 ERROR [stderr] (ServerService Thread Pool -- 28) at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:67) 16:05:40,231 ERROR [stderr] (ServerService Thread Pool -- 28) at com.fasterxml.jackson.dataformat.xml.XmlMapper.<init>(XmlMapper.java:49) 16:05:40,231 ERROR [stderr] (ServerService Thread Pool -- 28) at cn.sel.cap_demo.plugin.XmlViewer1.<init>(XmlViewer1.java:10)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
我这发现的是版本不一样 照成的
引用来自“小权丶”的评论
题主解决了没有, 我也遇到这个恶心的问题了。
我也是, 这是什么导致的啊!!! 我在tomcat下也有这个问题!!
题主解决了没有, 我也遇到这个恶心的问题了。
当然是import了jackson的,你看第一行错误信息,它是说找不到下面这个方法com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter() 是同一个war,放到Tomcat里正常,部署到WildFly就这样了
那就是 wildfly里也存在一个
XmlMapper类,注意看你import的是哪一个
不应该,同一个jar,部署在tomcat上就正常
而且也不是class not found,类已经有了,但wildfly说“方法不存在”
那就是jar版本问题
是不是jar包用错版本,然后相关依赖的jar没有相应的跟上。
谢谢
比你们想象得简单
#FFFFFF;background-color:#000000;">:wildfly-10.0.0.Final CJ$ ls modules/system/layers/base/com/fasterxml/jackson/core/jackson-databind/main/
#FFFFFF;background-color:#000000;">jackson-databind-2.5.4.jar module.xml
因为wildfly 10自带了fasterxml的几个module而且版本不太高;
com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter(Lcom/fasterxml/jackson/core/PrettyPrinter;)Lcom/fasterxml/jackson/databind/SerializationConfig;这个方法自从2.6以后才引入
将该module升级至2.6+即可解决。