0

我有一个包含以下行的类:

private static org.apache.axis.description.TypeDesc typeDesc = new org.apache.axis.description.TypeDesc(MyClass.class, true);

当我尝试反序列化与此类对应的 JSON 消息时,Jackson 的自省器会点击 TypeDesc 并尝试解析它的内容。

JSON 消息中不包含 typeDesc 字段,并且我已将 Jackson 配置为忽略此字段,因此此问题似乎是 Jackson 在反序列化开始之前发生的初始化例程的一部分。

有没有人遇到过这个?如果是这样,解决方法是什么?除了对杰克逊本身进行逆向工程之外,还有什么建议的解决方法吗?


如果有帮助,这是堆栈跟踪的尾端:

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)
4

1 回答 1

0

这不是杰克逊问题,它在您的类路径中。它是一个静态字段,因此将在加载类时初始化。错误说它没有找到discoversingleton 类,你需要在你的类路径中包含这个类的jar。与杰克逊无关

于 2013-07-04T07:55:12.743 回答