Access Keys:
Skip to content (Access Key - 0)

Axisを使って添付の送り方

Axisを使ってコンポーネントに添付の送り方を説明します。デフォルトのmule-axis-server-config.wsddで既に行われているために、特別なAxis設定は不要です。

Axisを使って添付を送る場合は、添付をjavax.activation.DataHandler形式にします。DataHandlerを作成したら、MuleMessageに添付してAxisで送信することが可能です。AxisMessageDispatcherが添付も送信します。

MuleClientを使ってコンポーネントでAxisに添付を送信する

以下はMuleClientを使ってAxisで添付を送る例です。説明する以外にもコンポーネントに添付を設定する方法やインターセプタを使う方法などのように他の方法もあります。しかし、基本的な考えは同じです。

MuleClient client = new MuleClient();
UMOMessage message = new MuleMessage("hello");

// HelloWorld.txtを元にしてテスト・ファイルを作成します。
File file = new File("testcasedata/HelloWorld.txt");

// ファイルをdatasourceとして、DataHandlerを作成します。
DataHandler buildFile = new DataHandler(new FileDataSource(file));

// DataHandlerをMuleMessageに添付します。
message.addAttachment("TestAttachment", buildFile);

// メッセージを送信します。
UMOMessage result = client.send("axis:http://localhost:8999/TestComponent?method=echo", message);

設定的には、コンポーネントを受信するコンポーネントは通常通りです。添付があることを設定ファイルに指定する必要はありません。

<mule-configuration id="ActiveMQProblem-config" version="1.0">

    <model name="Attachment_Test">
       <mule-descriptor name="TestComponent" implementation="org.foo.TestEcho">
            <inbound-router>
                <endpoint address="axis:http://localhost:8999"/>
            </inbound-router>
       </mule-descriptor>
    </model>

</mule-configuration>

しかし、クラスorg.foo.TestEchoには、DataHandlerの配列をパラメータとしてメソッドが必要です。
例:

public class TestEcho implements TestEchoIfc
{

    public Object echo(Object src, DataHandler[] attachments)
    {
        return src;
    }
}
Adaptavist Theme Builder (3.3.2-conf2.10) Powered by Atlassian Confluence 2.10, the Enterprise Wiki.
Free theme builder license