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");
File file = new File("testcasedata/HelloWorld.txt");
DataHandler buildFile = new DataHandler(new FileDataSource(file));
message.addAttachment("TestAttachment", buildFile);
UMOMessage result = client.send("axis:http:, 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;
}
}