我们正在研究使用以下jar的java rest web服务
jackson-mapper-asl-1.9.2.jar
jackson-jaxrs-1.9.2.jar
jackson-core-asl-1.9.2.jar
jackson-xc-1.9.2.jar
org.json-20120521.jar
使用上面的jar代码在tomcat服务器上工作正常。
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(Inclusion.NON_NULL);
String userJsonString = mapper.writeValueAsString(userJSON);
JSONObject userJsonObj = new JSONObject(userJsonString);
在WAS服务器中部署时,我们遇到以下错误:
Error 500: javax.servlet.ServletException: java.lang.NoSuchMethodError: org/codehaus/jackson/map/ObjectMapper.setSerializationInclusion(Lorg/codehaus/jackson/map/annotate/JsonSerialize$Inclusion;)Lorg/codehaus/jackson/map/ObjectMapper;
答案 0 :(得分:1)
从罐子里看起来你正在使用codehaus jackson:https://github.com/codehaus/jackson/而不是fastxml jackson:https://github.com/FasterXML/jackson。使用codehaus jackson,您的代码将如下所示:
objectMapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL)
答案 1 :(得分:0)
可能是杰克逊版本的碰撞。检查WAS是否在其类路径(库)
中包含Jackson jar