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 文件
我与一些流和 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 文件