我有一个包含以下行的类:
private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.axis.description.TypeDesc(MyClass.class, true);
当我尝试反序列化与此类对应的JSON消息时,Jackson的introspector命中TypeDesc并尝试解析它的内容。
typeDesc字段未包含在JSON消息中,我已将Jackson配置为忽略此字段,因此此问题似乎是在反序列化开始之前发生的Jackson初始化例程的一部分。
之前有没有遇到过这个?如果是这样,有什么问题?任何建议的解决方法除了逆向工程杰克逊本身?
如果有帮助,这是stacktrace的尾端:
java.lang.NoClassDefFoundError: org/apache/commons/discovery/tools/DiscoverSingleton
at org.apache.axis.components.logger.LogFactory$1.run(LogFactory.java:45)
at java.security.AccessController.doPrivileged(Native Method)
at org.apache.axis.components.logger.LogFactory.getLogFactory(LogFactory.java:41)
at org.apache.axis.components.logger.LogFactory.<clinit>(LogFactory.java:33)
at org.apache.axis.description.TypeDesc.<clinit>(TypeDesc.java:61)
at com.mypackage.MyClass.<clinit>(MyClass.java:2747)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at com.fasterxml.jackson.databind.introspect.AnnotatedConstructor.call(AnnotatedConstructor.java:120)
答案 0 :(得分:0)
这不是杰克逊问题,它在你的类路径中。它是一个静态字段,因此它将在加载类时初始化。错误说它没有找到发布的单元类,你需要在类路径中包含这个类的jar。与杰克逊没什么关系