【问题标题】:Use Moxy as default JAXB Implementation使用 Moxy 作为默认的 JAXB 实现
【发布时间】:2012-11-06 15:10:55
【问题描述】:

为了使用 Moxy 作为 JAXB 实现,必须在包含应用程序域类的文件夹中添加一个名为 jaxb.properties 的文件,并包含以下行

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

是否可以将 moxy 设为项目的默认设置?如果我有许多带有注释域类的不同文件夹,我应该把这个文件放在哪个文件夹中?

【问题讨论】:

  • 不行,除非它 Moxy 与 JDK 捆绑在一起
  • @Pangea - 这并不完全正确:stackoverflow.com/a/13254722/383861
  • @BlaiseDoughan - 我想说的是,没有任何改变是不可能的。如果不是这个选项,那么还有另一个。你无法避免配置。
  • @Pangea - WebLogic 除外,其中 MOXy 是默认的 JAXB 实现,并且需要配置才能将 RI 用作 JAXB 提供程序。
  • @BlaiseDoughan - 点。但这仅适用于应用程序服务器。他们的jdk也是如此吗? jrockit 什么的。

标签: xml json jaxb moxy


【解决方案1】:

注意:我是EclipseLink JAXB (MOXy) 的负责人,也是JAXB (JSR-222) 专家组的成员。

MOXy 已经是 WebLogic 12.1.1 中的默认 JAXB 实现:

在其他环境中,您还可以利用 META-INF/services 机制将 MOXy 指定为默认 JAXB 提供程序:

  1. 在目录META-INF/services 中创建一个包含名为javax.xml.bind.JAXBContext 的文件的JAR
  2. javax.xml.bind.JAXBContext 文件的内容必须是org.eclipse.persistence.jaxb.JAXBContextFactory
  3. 将该 jar 添加到您的类路径中。

【讨论】:

  • 它需要放在不同的罐子里吗?我现在的项目中不允许这样做吗?这很烦人……我应该只为此目的创建一个新 jar 吗?
  • @Edmondo1984 - 它不需要放在单独的罐子里。请注意,一旦您将 META-INF/services/javax.xml.bind.JAXBContext 放在类路径上,MOXy 将成为共享该类路径的所有应用程序的默认 JAXB 实现。
  • 谢谢。我相信将它添加到 wiki 上的 eclipse 链接页面会很有用
  • 我在 META-INF/services 中添加了一个名为 javax.xml.bindJAXBContext 的文件,并将该文件的内容设置为 org.eclipse.persistence.jaxb.JAXBContextFactory,但我仍然不要使用moxy
  • 确保文件名为javax.xml.bind.JAXBContext 而不是javax.xml.bindJAXBContext。在您的评论中,您在bindJAXBContext 之间缺少.。我刚刚在 Eclipse 中重试了这些步骤,并将 MOXy 作为JAXBContext 的提供者。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多