从 ActiveMQ 到 Java Bean
From ActiveMQ to Java Bean
我正在尝试在 Fuse 上学习 Camel - 在此示例中,使用 Dozer 组件将 ActiveMQ 消息转换为名为 CustInfo 的 Java 对象:
<camelContext id="context-43faded0-825e-454b-8037-c72122aa0418" xmlns="http://camel.apache.org/schema/blueprint">
<propertyPlaceholder location="classpath:sql.properties" id="properties"/>
<endpoint uri="dozer:toCustInfo?sourceModel=homeloancust.CustInfo&targetModel=org.blogdemo.homeloan.model.CustInfo&unmarshalId=homeloancust&mappingFile=toCustInfo.xml" id="toCustInfo"/>
<dataFormats>
<jaxb contextPath="homeloancust" id="homeloancust"/>
</dataFormats>
<route id="CustomerEvaluation">
<from uri="activemq:queue:customer"/>
<to ref="CustInfo" id="to3"/>
. . . .
</route>
</camelContext>
我的问题是,如果我不需要在 Java 对象中进行转换,我能否将消息直接转换为 Java class(不使用 Dozer)。
尝试过:
<bean id="CustInfo" class="homeloancust.CustInfo"/>
. . .
<to ref="CustInfo" id="to3"/>
没有成功!有帮助吗?
假设传入消息有合同(如果它遵循良好的合同优先方法,则应该有合同),那么您可以使用 JAXB 将有效负载简单地解组为 Java 对象。如果它没有合同,您仍然可以使用 JAXB 注释来注释您的 Java class 并对其进行解组:
<unmarshal>
<jaxb prettyPrint="true" contextPath="org.apache.camel.example"/>
</unmarshal>
我正在尝试在 Fuse 上学习 Camel - 在此示例中,使用 Dozer 组件将 ActiveMQ 消息转换为名为 CustInfo 的 Java 对象:
<camelContext id="context-43faded0-825e-454b-8037-c72122aa0418" xmlns="http://camel.apache.org/schema/blueprint">
<propertyPlaceholder location="classpath:sql.properties" id="properties"/>
<endpoint uri="dozer:toCustInfo?sourceModel=homeloancust.CustInfo&targetModel=org.blogdemo.homeloan.model.CustInfo&unmarshalId=homeloancust&mappingFile=toCustInfo.xml" id="toCustInfo"/>
<dataFormats>
<jaxb contextPath="homeloancust" id="homeloancust"/>
</dataFormats>
<route id="CustomerEvaluation">
<from uri="activemq:queue:customer"/>
<to ref="CustInfo" id="to3"/>
. . . .
</route>
</camelContext>
我的问题是,如果我不需要在 Java 对象中进行转换,我能否将消息直接转换为 Java class(不使用 Dozer)。 尝试过:
<bean id="CustInfo" class="homeloancust.CustInfo"/>
. . .
<to ref="CustInfo" id="to3"/>
没有成功!有帮助吗?
假设传入消息有合同(如果它遵循良好的合同优先方法,则应该有合同),那么您可以使用 JAXB 将有效负载简单地解组为 Java 对象。如果它没有合同,您仍然可以使用 JAXB 注释来注释您的 Java class 并对其进行解组:
<unmarshal>
<jaxb prettyPrint="true" contextPath="org.apache.camel.example"/>
</unmarshal>