我试图遵循此处的示例,但得到一个javax.xml.bind.PropertyException。由于以下代码行,我收到此异常:
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
我确实复制/粘贴了上面列出的示例,因此我的代码正是您在此处看到的内容。在SO和Google上搜索此内容并没有帮助,并认为我会将其带到SO的天才那里寻求帮助。我们将不胜感激任何帮助,使用json.org,Jackson和JAXB对JSON和XML进行反序列化已变成一个无底洞,已经消耗了我近一个月的时间。
我的第一印象是我没有正确指定eclipselink运行时(如此处所述),但是没有产生解决方案。
堆栈跟踪:
Exception in thread "main" javax.xml.bind.PropertyException: name: eclipselink.media-type value: application/json
at javax.xml.bind.helpers.AbstractMarshallerImpl.setProperty(AbstractMarshallerImpl.java:358)
at com.sun.xml.internal.bind.v2.runtime.MarshallerImpl.setProperty(MarshallerImpl.java:527)
at HelloWorld.main(HelloWorld.java:17)
这就是我在做的
您需要在类路径上具有EclipseLink jar(2.4.0或更高版本),并jaxb.properties
在与用于引导的类相同的包中的文件中JAXBContext
包含以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
以下是GitHub上一个示例的链接,您可以运行该示例以查看一切正常:
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句