Tungsten
Axis2をベースにWS-*をまとめてAll-in-Oneにしたパッケージ。
サービスのデプロイ
WSO2 Tungsten Management Consoleのサービスメニューから
Uploadをしてデプロイできる。その場合は、ServiceArchiveの形式はAxis2のaarやJarが利用できる。
Axis2のEclipse 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(); } } }
としたらあっけなく動いた。あまりにあっけないので、ローカルを呼び出しているのではないかとコンソールから確認したらちゃんとサービスが呼び出されていた。