java - 线程 "main"javax.xml.bind.PropertyException : name: eclipselink. 媒体类型值中的异常:application/json

标签 java json jaxb eclipselink moxy

我正在尝试按照位于 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)

这就是我在做的

enter image description here

最佳答案

您需要在您的类路径中包含 EclipseLink jar(2.4.0 或更新版本),并在与用于引导 JAXBContext 的类相同的包中包含一个 jaxb.properties 文件 包含以下条目:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

下面是 GitHub 上示例的链接,您可以运行该示例以查看一切正常:

关于java - 线程 "main"javax.xml.bind.PropertyException : name: eclipselink. 媒体类型值中的异常:application/json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20962053/

相关文章:

java - 当一个或多个元素是列表时(maxOccurs=unbounded),是否可以让 JAXB 忽略 <sequence> 中元素的顺序?

java - 避免 arg0 标签

javascript - 多部分 formData 字符串转 json

java - 如何将SVN分支合并到主干?

java - hashCode() 和 equals() 与 Class<T>

Java 监视器 : How to know if wait(long timeout) ended by timeout or by Notify()?

php - 通过 Catalyst 框架将数据导出到 JSON

PHP mysql代码帮助解码

java - UnmarshalException 错误

java - 使用 jsoup java 从文本中检索 HTML 结构