我有一个包,它只包含 xsd 文件来生成(通过 JAXB)与我们的服务器和客户端应用程序相关的共享类。所以这些类包含 XML 注释。
一个客户端是 Android 应用程序。我还想在此处使用这些类进行 JSON 反序列化,因为我与提供 JSON(使用 Jersey/ Jackson)的 REST 服务进行通信。
我尝试在 Android 上使用Jackson(1.7.2 版),如下所示:
ObjectMapper mapper = new ObjectMapper();
mapper = mapper.configure(DeserializationConfig.Feature.USE_ANNOTATIONS,
false);
mapper = mapper.configure(SerializationConfig.Feature.USE_ANNOTATIONS,
false);
FooBar someObject = (FooBar) mapper.readValue(jsonString, FooBar.class);
我虽然配置 MAPPER 应该避免使用注释,但我仍然得到
02-07 09:30:18.631: ERROR/AndroidRuntime(447): java.lang.NoClassDefFoundError: javax.xml.bind.annotation.XmlAccessorType
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at java.lang.Class.getDeclaredAnnotations(Native Method)
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at org.codehaus.jackson.map.introspect.AnnotatedClass.resolveClassAnnotations(AnnotatedClass.java:292)
02-07 09:30:18.631: ERROR/AndroidRuntime(447): at org.codehaus.jackson.map.introspect.AnnotatedClass.construct(AnnotatedClass.java:139)
谁知道阻止杰克逊解析注释的诀窍。
谢谢克劳斯