我正在使用tomcat 7和jdk 1.6开发一个安静的服务。对于json处理我正在使用jackson 2.4.2并且它工作正常,除非我尝试反序列化一个对象(它没有序列化的麻烦)。
错误是:
java.lang.ClassNotFoundException: org.codehaus.jackson.JsonFactory
这是杰克逊1.x保持特定班级的地方。我的杰克逊2.4.2有
com.fasterxml.jackson.core.JsonFactory
我不知道它为什么试图链接旧班级。我从未使用过jackson 1.x。
我用的是什么:
asm-3.3.1
commons-io-2.4
jackson-core-2.4.2
jackson-databind-2.4.2
jersey-bundle-1.18
mysql-connector-java-5.1.27
和
com.fasterxml.jackson.annotation
我从github采取的。什么库可能试图导入旧的杰克逊模块?任何帮助将不胜感激。
答案 0 :(得分:1)
问题当然来自于尝试使用Jackson 1.x ObjectMapper
并且缺少基础JsonFactory
来代替1.x.由于这些来自不同的罐子(jackson-mapper-asl vs jackson-core-asl),很可能会遗漏一些。
现在,既然你没有直接使用Jackson 1.x,那么问题是:也许球衣依赖于1.x?
所以有两个相关的问题:(a)如果需要Jackson 1.x,还要引入核心jar,或者(b)如何完全取消Jackson 1.x的使用。
请注意,从技术上讲,很可能同时使用1.x和2.x版本的Jackson,因为2.x专门设计为能够共存。这使升级更容易,并允许逐步(逐个组件)升级。