Apache Camel中的JAXB编组

问题描述 投票:1回答:2

我是Apache骆驼的新手,需要执行一项需要将​​对象封送至XML文件的任务。我正在使用以下代码,但无法正常工作。在这里,foo.pojo是存在JAXB注释类的程序包

JaxbDataFormat jaxbDataFormat =  new JaxbDataFormat("foo.pojo");
from("direct:start").marshal(jaxbDataFormat).to("file:C:/Users/Anand.Jain/Desktop/hello/abc.xml").end();
jaxb apache-camel marshalling
2个回答
4
投票

选项1:配置上下文路径

JaxbDataFormat jaxbDataFormat =  new JaxbDataFormat("foo.pojo");

[OptionFactoryjaxb.index文件必须在给定的程序包中定义,如here所述。

选项2:配置要绑定的类

JAXBContext jaxbContext = JAXBContext.newInstance(MyAnnotatedClass.class);
JaxbDataFormat jaxbDataFormat = new JaxbDataFormat(jaxbContext);

我更喜欢选项2。


2
投票

选项1最近无法使用,因为JaxbDataFormat(String)构造函数不可用as you can see in official javadoc

关于这一点,文档似乎已过时。

编辑:请注意,有两个JaxbDataFormat

我了解:骆驼生态系统中有两个jaxbDataFormat

  • 一个位于camel-coreorg.apache.camel.model.dataformat] >>
  • camel-jaxb
  • 包中的另一个[
© www.soinside.com 2019 - 2024. All rights reserved.