我现在讨厌了一段时间,但由于很多配置文件都在xml中,所以很难找到我的问题的一些答案.
我想做什么?
使用caml路由我想读取xml文件并将其放入POJO.在这里,我想分析一下.最后,我想写一个不同的xml文件(POJO)作为out文件夹的答案.
我的问题是,我不知道如何告诉camel将xml文件体解析为我的POJO.
我所做的一个简短的例子,直到知道:
我的骆驼路线:
from("file:data/in")
.marshal().xstream()
.bean(XmlToBeanAndBackBean.class)
.unmarshal().xstream()
.to("file:data/out");
我的POJO:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class XmlFilePojo {
@XmlAnyAttribute
private String name;
@XmlElement(name = "the_age")
private int theAge;
public void setName(String name) {
this.name = name;
}
}
我的豌豆用于骆驼路线:
@Component
public class XmlToBeanAndBackBean {
public XmlFilePojo transformXmlObject(XmlFilePojo xmlFilePojo){
XmlFilePojo returnPojo = xmlFilePojo;
returnPojo.setName("merkur");
return returnPojo;
}
}
我认为我的错误是在camel路由中,它将xml文件转换为XmlFilePojo对象.
当我尝试运行它时,我收到以下错误:
引起:org.apache.camel.InvalidPayloadException:没有可用的类型:XmlFilePojo,但有值:[B @ 659392cd类型:byte [] on:simple.xml.引起:没有类型转换器可以从类型:byte []转换为所需类型:XmlFilePojo,其值为[B @ 659392cd.交换[simple.xml.引起:[org.apache.camel.NoTypeConversionAvailableException – 没有类型转换器可用于从类型:byte []转换为所需类型:XmlFilePojo,其值为[B @ 659392cd]
由于我的文件中没有byte [],我不知道如何处理它.
希望有人有答案.