Java 从没有Spring的XML片段实例化Camel组件
在没有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
<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>