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

Mule Jaxb to object transforms to wrong object

我与一些流和 JAXBcontext 的集成是这样声明的

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

在我的一个流程中,我将 XML 转换为 Purchase,在另一个 XML 中转换为 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'}"

这是我的配置,如何强制转换为 "right" 对象?

<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"/>

要选择正确的 bean class,您必须将

@XmlRootElement(name = "Order") 

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

还有一点 我还面临 mule 3.7 的问题,它没有读取包

中的 package.info 文件