Java 从没有Spring的XML片段实例化Camel组件

Java 从没有Spring的XML片段实例化Camel组件,java,apache-camel,Java,Apache Camel,在没有Spring的情况下,如何从XML片段实例化Camel组件 我有一个片段,类似这样: <dataFormats> <json id="jack" library="Jackson" prettyPrint="true"/> .... </dataFormats> <routes xmlns="http://camel.apache.org/schema/spring"> <route> <from uri

在没有Spring的情况下,如何从XML片段实例化Camel组件

我有一个片段,类似这样:

<dataFormats>
    <json id="jack" library="Jackson" prettyPrint="true"/>
....
</dataFormats>
<routes xmlns="http://camel.apache.org/schema/spring">
  <route>
   <from uri.....
  </route>
</routes>
甚至像这样的事情,我希望能够从以下方面实例化处理器:

<setHeader headerName="inputRegistryHandler">
   <simple>${header.CamelFileNameOnly}</simple>
</setHeader>

<mvel>request.headers.foo == 'bar'</mvel>
它吃了一个包含

<camel:setBody>
    <camel:simple>mike check one two</camel:simple>
</camel:setBody>

Camel使用JAXB封送和解封XML。XML模型在
org.apache.camel.model
包中定义。您可以尝试以下操作:

JAXBContext jaxbContext = JAXBContext.newInstance(SetHeaderDefinition.class);

Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
SetHeaderDefinition setHeaderDefinition = (SetHeaderDefinition) jaxbUnmarshaller.unmarshal(file);

CamelContext类具有允许加载xml文件的函数loadRoutesDefinition

Xml文件的结构应如下所示:

<dataFormats>
    <json id="jack" library="Jackson" prettyPrint="true"/>
....
</dataFormats>
<routes xmlns="http://camel.apache.org/schema/spring">
  <route>
   <from uri.....
  </route>
</routes>

<routes xmlns="http://camel.apache.org/schema/spring">
  <route>
   <from uri.....
  </route>
</routes>