【发布时间】:2012-11-29 16:44:17
【问题描述】:
虽然我已经使用 MOXY 工厂添加了 jaxb.properties,并且我看到 JAXB 已切换到 moxy,但 CXF 在 JAXBUtils 类中有一个名为 createRIContext 的方法,它加载硬编码的 sun JAXB 实现。
有没有办法覆盖它并改用moxy?
有问题的代码如下:
// fall back if we're using another jaxb implementation
try {
riContext = JAXBUtils.createRIContext(contextClasses
.toArray(new Class[contextClasses.size()]), tns);
}
它加载硬编码的“com.sun.xml.bind.v2.ContextFactory”类并使用它来创建 JAXB 上下文。
【问题讨论】:
-
感谢您提供的链接,但您提供的链接讨论了其他实现,而我的问题专门针对 CXF 集成问题。此外,直接处理 xml 的想法(如那里所建议的那样)对我来说不是一个好的方向。
-
问题在于 JAX-WS (JSR-224) 实现在用于 XML 绑定的 JAXB (JSR-222) 实现中具有专有挂钩。
Provider机制是一种标准的 JAX-WS 机制,用于插入您自己的绑定解决方案,这将允许您利用 EclipseLink JAXB (MOXy)。 WebLogic 和 GlassFish 中的 JAX-WS 实现支持 MOXy。 -
我正在使用 Spring / CXF。似乎 CXF 正在使用硬编码的 sun 实现。请参阅下面的代码: // 如果我们使用另一个 jaxb 实现,则回退 try { riContext = JAXBUtils.createRIContext(contextClasses .toArray(new Class[contextClasses.size()]), tns);您能否提供更多信息,提供机制如何帮助我作为 CXF 用户覆盖上述代码?
-
这个话题有进展吗?我还想将 CXF (jax-ws) 与 MOXY 一起使用,以使其与 JPA 注释类一起使用。
标签: jaxb jax-ws cxf eclipselink moxy