请问Jackson的XmlMapper为什么在Wildfly下不能工作?

Sel8616 发布于 2016/02/29 16:08
阅读 1K+
收藏 0

求教~~

代码如下

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)



加载中
1
蒋才
蒋才

比你们想象得简单

:wildfly-10.0.0.Final CJ$ ls modules/system/layers/base/com/fasterxml/jackson/core/jackson-databind/main/

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+即可解决。

Sel8616
Sel8616
谢谢
0
Kylin_Shaw
Kylin_Shaw
是不是jar包用错版本,然后相关依赖的jar没有相应的跟上。
Kylin_Shaw
Kylin_Shaw
那就是jar版本问题
Sel8616
Sel8616
而且也不是class not found,类已经有了,但wildfly说“方法不存在”
Sel8616
Sel8616
不应该,同一个jar,部署在tomcat上就正常
0
南湖船老大
南湖船老大
那就是 wildfly里也存在一个XmlMapper类,注意看你import的是哪一个
Sel8616
Sel8616
当然是import了jackson的,你看第一行错误信息,它是说找不到下面这个方法com.fasterxml.jackson.databind.SerializationConfig.withDefaultPrettyPrinter() 是同一个war,放到Tomcat里正常,部署到WildFly就这样了
0
小权丶
题主解决了没有, 我也遇到这个恶心的问题了。 
Backflow
Backflow
我也是, 这是什么导致的啊!!! 我在tomcat下也有这个问题!!
0
Sel8616
Sel8616

引用来自“小权丶”的评论

题主解决了没有, 我也遇到这个恶心的问题了。 
没有,或许用法不对吧。
0
Leeven
Leeven
我这发现的是版本不一样  照成的
返回顶部
顶部