我与一些流程集成,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"/>
答案 0 :(得分:1)
要选择正确的bean类,必须放置
@XmlRootElement(name = "Order")
您可能必须放置xml的根元素而不是顺序。
另一点 我也遇到了mule 3.7的一个问题,它没有读取包
中的package.info文件