我有一个maven项目,我正在尝试使用jaxb和camel使用命令封送文件:
inoremap <C-s> <Esc>:update<CR>i
当我运行项目时,出现以下错误:
from("file://...").marshal("myDataFormat").to("file://...");
首先,有人知道“注册表”是什么吗?我搜索了谷歌,但找不到任何东西。我猜它可能是camel-context文件的另一个名字。其次,如何使用驼峰注册数据格式?我可以使用默认数据格式吗?
很抱歉,如果答案很简单,但我对骆驼比较陌生,而我能找到的在线文档并没有太大帮助。
答案 0 :(得分:3)
你应该使用这样的东西
DataFormat jaxb = new JaxbDataFormat("com.acme.model");
from("activemq:My.Queue").
unmarshal(jaxb).
to("mqseries:Another.Queue");
换句话说,首先创建dataformat对象,然后尝试解组它。
答案 1 :(得分:1)
关于Camel注册管理机构http://camel.apache.org/registry.html
简单来说,测试任务简单注册表就可以了。
Spring 或蓝图适用于更复杂的任务。 http://camel.apache.org/using-osgi-blueprint-with-camel.html,http://camel.apache.org/spring.html,http://camel.apache.org/data-format.html(请参阅下面的Spring示例)
蓝图上下文示例,包含一些数据格式。
<?xml version="1.0" encoding="UTF-8"?>
<blueprint
xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.0.0"
xsi:schemaLocation=
"http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<camelContext id="camelTest"
xmlns="http://camel.apache.org/schema/blueprint" >
<propertyPlaceholder id="properties" location="blueprint:server.placeholder"/>
<package>camel.test</package>
<dataFormats>
<beanio id="cashWarrantFormat" mapping="beanio/mapping.xml" streamName="CashWarrant" encoding="UTF-8"/>
<beanio id="metaDocFormat" mapping="beanio/mapping.xml" streamName="MetaDoc" encoding="UTF-8"/>
<beanio id="accStatementFormat" mapping="beanio/mapping.xml" streamName="AccStatement" encoding="UTF-8"/>
<beanio id="advanceReport" mapping="beanio/mapping.xml" streamName="AdvanceReport" encoding="UTF-8"/>
</dataFormats>
</camelContext>
<bean id="javaUuidGenerator" class="org.apache.camel.impl.JavaUuidGenerator"/>
</blueprint>
简单的注册表示例。
public static SimpleRegistry createRegistry() {
SimpleRegistry simpleRegistry = new SimpleRegistry();
simpleRegistry.put("transformerFactory", com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl.class);
simpleRegistry.put("javaUuidGenerator", org.apache.camel.impl.JavaUuidGenerator.class);
return simpleRegistry;
}
public void createCamelContext() {
logger.info("Create Camel context");
simpleRegistry = createRegistry();
defaultCamelContext = new DefaultCamelContext(simpleRegistry);
}