【问题标题】:Mule ESB JAXB XML To Object Transformer Better Way?Mule ESB JAXB XML 到 Object Transformer 的更好方法?
【发布时间】:2012-10-12 02:59:25
【问题描述】:

Mule 3.3 可以使用 JAXB 自动将 XML 字符串解组为对象:
1.你首先用spring注册你的jaxb注释类。 2. 有一个组件需要input这样的类型

所以我设法进行了转换,但我必须创建一个什么都不做的“DumbTransformer”。它有一个方法可以返回它接收到的相同对象。我需要它来触发 XML 到对象的转换,以便进一步处理消息。

流程示例:

<spring:beans>
    <spring:bean id="dumbTransformer" class="foo.bar.DumbTransformer"/>
</spring:beans>

<flow name="main" doc:name="main">
    <vm:inbound-endpoint path="in" doc:name="VM" />
        <component doc:name="Java">
            <spring-object bean="dumbTransformer"/>
        </component>
        <splitter expression="#[payload.items]" doc:name="Split Items"/>
    <logger message="#[payload]" level="INFO" doc:name="Log Item"/>
    <vm:outbound-endpoint path="out" doc:name="VM" />
</flow>

DumbTransformer.java

package foo.bar;

@ContainsTransformerMethods
public class InvoiceUnmarshaller extends AbstractTransformer {

    @Transformer
    public MyJaxbAnnotatedClass foo(@Payload MyJaxbAnnotatedClass i) {
        return i;
    }

}

有没有办法在不必创建这样的 DumbTransformer 的情况下完成此任务?

谢谢。

【问题讨论】:

    标签: jaxb esb mule transformer


    【解决方案1】:

    如你所料,JAXB 反序列化不会发生,因为没有要满足的组件:

    1. 有一个组件需要输入这样的类型

    如果你有一个自动变压器来做这件事呢:

    <auto-transformer returnClass="foo.bar.MyJaxbAnnotatedClass" />
    

    【讨论】:

      【解决方案2】:

      Mule XML Module 为 OOTB 提供JAXB Transformer。我宁愿尽可能利用 mule 的功能,而不是编写自定义代码

      【讨论】:

      • 感谢您的回答,但我发现您的回答含糊不清。
      猜你喜欢
      • 2018-01-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 2016-05-20
      • 2015-07-21
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      相关资源
      最近更新 更多