对象的Mule Jaxb转换为错误的对象

时间:2016-06-22 09:23:02

标签: jaxb mule anypoint-studio

我与一些流程集成,JAXBcontext像这样声明

<mulexml:jaxb-context name="JaxbContext" packageNames="se.razorlib.SystemAProduct:se.razorlib.SystemAPurchase:se.razorlib.SystemAOrder"/>

在我的一个流程中,我将XML转换为Purchase,并将另一个XML转换为Order,这些是非常相似的对象。 但是,在Order流程中,JAXB将我的XML转换为PurchaseObject而不是OrderObject,这当然会引发错误:

The object transformed is of type: "SimpleDataType{type=se.razorlib.SystemAPurchase.Header, mimeType='*/*', encoding='null'}", but the expected return type is "SimpleDataType{type=se.razorlib.SystemAOrder.Header, mimeType='*/*', encoding='null'}"

这是我的配置,如何强制转换为&#34;右键&#34;对象

<file:inbound-endpoint path="C:\temp\OrderfileIn" responseTimeout="10000" doc:name="FileIn"/>
<mulexml:jaxb-xml-to-object-transformer jaxbContext-ref="JAXB_Context" doc:name="XML to JAXB Object" returnClass="se.razorlib.SystemAOrder.Header"/>    
<custom-transformer returnClass="se.razorlib.SystemBOrder.SalesOrder" encoding="UTF-8" class="se.didriksson.Transformer.Map2SystemBOrder" doc:name="Map2B"/>

1 个答案:

答案 0 :(得分:1)

要选择正确的bean类,必须放置

@XmlRootElement(name = "Order") 

您可能必须放置xml的根元素而不是顺序。

另一点 我也遇到了mule 3.7的一个问题,它没有读取包

中的package.info文件