WebMethods GlueをESB Muleと連携してESB MuleコンポーネントをGlue Web Serviceとして公開したり、反対にGlue Web ServiceをESB Muleから呼び出すことができます。
このページはESB MuleのconfigureGlueエンドポイントに付いて説明します。また、[Glueコネクタ]ページも参照してください。
ESB MuleコンポーネントをGlueサービスとして公開するには、コンポーネントの受信エンドポイントをGlueのURLに設定するだけです:
<mule-descriptor name="echoService"
inboundEndpoint="glue:http://localhost:81/services"
implementation="org.mule.components.simple.EchoComponent">
</mule-descriptor>
以上の設定を行った後にESB Muleが起動すると、http://localhost:81/services/echoServiceでサービスは使えます。Echoコンポーネントは1つのパラメータ文字列を受け取る1つのメソッド echo が定義されています。呼び出されると、パラメータの文字列をクライアントに返します。
ESB Mule Clientを使ってサービスを呼び出すこともできます。
例:
public static void main(String[] args)
{
MuleClient client = new MuleClient();
UMOMessage result = client.send
("glue:http:, "今日は!", null);
System.out.println("受け取ったメッセージは「" + result.getPayload() + "です。");
}
TestEchoServiceを実行すると、以下のように結果がコンソールに表示されます:
WSDLの取得
ESB Muleを介して提供しているGlueサービスのWSDLを取得するには、サービスURLに「.wsdl」を追加します。上の設定を例とすると、以下のようにURLを記述します:
 | Glueのダウンロード
WebMethodsのライセンスのために、ESB MuleにGlueを同梱させることはできません。また、WebmethodsはGlueのダウンロード・ページがなかなか見つからないことに隠したか、ページを削除してしまいました。
このコネクタを使う場合は、既にGlueのjarファイルを入手したことを前提にします。glue.jarをESB Muleのクラスパス(classpath)に追加するだけです。ESB MuleはGlue Standard Edition以降と連動することができます。 |
ESB MuleコンポーネントをGlueサービスとして設定
サービス初期化コールバック(Service Initialiation Callback)
ESB Muleが生成したGlueサービスを制御するにはコンポーネントで org.mule.providers.soap.glue.GlueInitialisable を実装します。
public interface GlueInitialisable
{
public void initialise(IService service, ServiceContext context)
throws InitialisationException;
}
このメソッドはサービスが初期化されたときに呼ばれますので、ESB Muleコンポーネントからサービスの設定を可能にします。
生成されたサービスは関連したESB Muleコンポーネントを呼び出すプロキシである electric.service.virtual.VirtualService のインスタンスです。
開発者は ServiceContext を使ってGlueサーバに登録される前にサービスにハンドラーや他の設定を追加することができます。
Axisサポートと異なり、GlueプロバイダはESB Muleに同梱されているHttpトランスポートではなく、Glue内蔵のHTTPサーバを利用します。