【发布时间】:2014-01-24 13:41:18
【问题描述】:
我正在尝试遵循位于 here 的示例,但得到一个 javax.xml.bind.PropertyException。由于以下代码行,我收到此异常:
marshaller.setProperty(MarshallerProperties.MEDIA_TYPE, "application/json");
我已经复制/粘贴了上面列出的示例,所以我的代码正是您在此处看到的。搜索 SO 和 Google 并没有帮助,我想我会把它带给 SO 的天才寻求帮助。任何帮助将不胜感激,使用 json.org、Jackson 和 JAXB 使用 JSON 和 XML 进行(反)序列化已经变成了一个黑色无底坑,已经消耗了我将近一个月的时间。
我的第一印象是我没有正确指定 eclipselink 运行时 (as described here),但这并没有产生解决方案。
堆栈跟踪:
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 2.4.0 或更高版本吗?
-
@sasankad - 很好的收获。抛出的异常是 RI 异常(
com.sun.xml.internal.bind.v2.runtime包),因此 EclipseLink MOXy 没有被用作 JAXB 提供程序。 -
@BlaiseDoughan,很多人都遇到过这个问题
标签: java json jaxb eclipselink moxy