Tungsten

Axis2をベースにWS-*をまとめてAll-in-Oneにしたパッケージ。

サービスのデプロイ

WSO2 Tungsten Management Consoleのサービスメニューから
Uploadをしてデプロイできる。その場合は、ServiceArchiveの形式はAxis2のaarやJarが利用できる。

Axis2Eclipse Pluginの中にCode Generator WizardとService Archive Wizardがあり、後者で
デプロイできるJarを構築できる。

スタブの作成

コンソールのサービス名をクリックするとサービスの詳細画面に遷移する。
Generate Clientを選択するといろいろなパターンのClientスタブを作成できる。
個人的にはXMLBeansが好きなので、提供されているEchoサービスを元にデータバインディングをXMLBeansにして、スタブを作ってみた。Jarでダウンロードされる。

クライアントの作成

そのJarをビルドの依存関係に格納して以下のクライアントコードを書いてみた。

import com.wso2.tungsten.client.Echo;
import com.wso2.tungsten.client.EchoStub;
import com.wso2.tungsten.services.echo.xsd.EchoStringDocument;
import com.wso2.tungsten.services.echo.xsd.EchoStringResponseDocument;
import com.wso2.tungsten.services.echo.xsd.EchoStringDocument.EchoString;

public class EchoClient {

	public static void main(String[] args) {
		try {
			Echo echo = new EchoStub();
			
			EchoStringDocument sd = EchoStringDocument.Factory.newInstance();
			EchoString string = EchoStringDocument.EchoString.Factory.newInstance();
			string.setIn("hello");
			sd.setEchoString(string);
			
			EchoStringResponseDocument doc = echo.echoString(sd);
			System.out.println(doc.getEchoStringResponse().getReturn());
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

}

としたらあっけなく動いた。あまりにあっけないので、ローカルを呼び出しているのではないかとコンソールから確認したらちゃんとサービスが呼び出されていた。

サービス実行ログ

コンソールのTracerを選択すると今まで動いたサービスのリクエストレスポンスのXMLを含めて、記録を取れている。
前提条件として、ConfigurationのMonitoringをOnにしないとだめだろう。(未確認)