Java WAS服务器中的org/codehaus/jackson/map/ObjectMapper.setSerializationInclusion异常
我们正在开发JavaRESTWeb服务,我们正在使用下面的JARJava WAS服务器中的org/codehaus/jackson/map/ObjectMapper.setSerializationInclusion异常,java,json,rest,jersey,Java,Json,Rest,Jersey,我们正在开发JavaRESTWeb服务,我们正在使用下面的JAR 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 在tomcat服务器中使用上述JAR代码可以正常工作 ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationI
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
在tomcat服务器中使用上述JAR代码可以正常工作
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;
这可能是杰克逊的碰撞。检查WAS的类路径(库)中是否包含Jackson JAR从JAR中可以看出您使用的是codehaus Jackson:而不是fasterxml Jackson:。使用codehaus jackson,您的代码将如下所示:
objectMapper.getSerializationConfig().setSerializationInclusion(Inclusion.NON_NULL)
这在我的经验中相当常见,尤其是在2.x和1.x版本之间。好的。我们在类路径中搜索了IBM/WebSphere/AppServer/Lib.am I rite?我没有使用WAS。搜索IBM/WebSphere中的所有子目录。还要检查您的应用程序存档(war或ear)是否没有重复的Jackson罐子。