今回は
NetBeans
5.5 で JAX-WS Web サービスを非同期に呼ぶプログラムを作ってみます。Web サービスに関しては小林さんが
NetBeans 日本語サイトに
寄稿してくださった「
Web
サービスチュートリアル」がとてもわかりやすいです。ここでも Web サービス、Web
サービスクライアントを作るまではその手順で行っています。
今回も
NetBeans
5.5 リリース候補ビルド +
日
本語ファイル でやってみます。
1. Web サービスを作成する
Web
アプリケーションプロジェクトを作ってそこに「Web
サービス」を作成します。ここでは例えば英語を渡して日本語を返すオペレーションと中国語を返すオペレーション、getJapanese() と
getChinese() を作ることにします。
2. Web サービスを配備する
Web
サービスを作成したらアプリケーションサーバーに配備します。ここでは NetBeans にあらかじめバンドルされている Tomcat
で行いました。
3. Web サービスクライアントを作成する
Web サービスを配備できたら Java
アプリケーションプロジェクトを作成し、「Web サービスクライアント」を作成します。ウィザードでは JAX バージョンは JAX-WS
を選んでください。
プ
ロジェクトウィンドウは下のようになります。Web サービスを提供する WebApplication プロジェクトの「Web
サービス」ノードには getJapanese()、getChinese() が表示されます。これを使う側の JavaApplication
プロジェクトでは「Web サービス参照」ノードの下にそれらのオペレーションが表示されています。
これで Web サービスが利用できるようになったわけですが、Web サービスを変更して「非同期」で呼べるようにしてみます。
4. Web サービスの属性を変更する
JavaApplication
プロジェクトの「Web サービス参照」の Web サービスノードでマウスの右ボタンをクリックしメニューを開きます。そこから「Web
サービス属性を編集」を選びます。カスタマイズダイアログが表示されます。
5. 非同期クライアントを有効にする
カスタマイズダイアログ上で「ポートタイプオペレーション」で
getJapanese() だけ「非同期クライアントを有効にする」をチェックして「了解」ボタンを押します。Web サービスクライアント側の
Java コードが再生成されます。
新しく「getJapanese [非同期ポーリング]
」と「getJapanese [非同期コールバック]」
というオペレーションが追加されます。ポールする方法と、コールバックハンドラを使う方法2種類あります。
6. Web サービスを呼び出すコードを挿入する
コードを生成するのもとても簡単です。このノードをエディ
タ上にドラッグ&ドロップするだけです
非同期の Web サービス呼び出しについてはチュートリアルがありこのあたりのことが書いてあります。まだ残念ながら日本語ではないのですがおもしろいです。
また以下の日本語のドキュメントも参考になります。