1

Mule 3.3は、次の場合にJAXBを使用してXML文字列をオブジェクトに自動的にアンマーシャリングできます
。1。最初にjaxb注釈付きクラスをspringに登録します。2.入力などのタイプを必要とするコンポーネントがあります

だから私はなんとか変換を行うことができましたが、何もしない「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を作成せずにこれを達成する方法はありますか?

ありがとう。

4

2 に答える 2

3

ご想像のとおり、次の条件を満たすコンポーネントがないため、JAXBの逆シリアル化は発生しません。

  1. 入力などのタイプを必要とするコンポーネントがあります

それで、もしあなたがまさにそれをするための単巻変圧器を持っていたらどうなるでしょう:

<auto-transformer returnClass="foo.bar.MyJaxbAnnotatedClass" />
于 2012-10-11T18:59:25.657 に答える
1

Mule XMLモジュールは、OOTBにJAXBトランスフォーマーを提供します。カスタムコードを書くのではなく、可能な限りラバの機能を活用したい

于 2012-10-11T18:53:57.853 に答える