1.5.1 Webサービスの形態
Application Serverでは,次に示す形態のWebサービスをサポートしています。
-
Webサービス実装クラスを使用したSOAP Webサービス
-
プロバイダ実装クラスを使用したSOAP Webサービス
-
RESTful Webサービス(Webリソース)
それぞれの形態について説明します。
- 〈この項の構成〉
(1) Webサービス実装クラスを使用したSOAP Webサービス
Webサービス実装クラスを使用する場合の形態を次に示します。
Webサービス実装クラスを使用すると,WSDLのオペレーションに対応するJavaメソッドを実装するだけでWebサービスを実現できます。複雑な変換はスタブが実施するため,Webサービス開発時に,APIを利用してSOAPメッセージを構成するXMLを組み立てるような,複雑なプログラミングをする必要はありません。
スタブは,ツールが自動生成するか,またはJAX-WSエンジンが動的に生成します。WSDLは自動生成でき,必須となります。また,WSDLに含まれないSOAPメッセージを送受信することはできないので注意してください。なお,Webサービス実装クラスは,POJOとしても,EJBを基にしても作成できます。
(2) プロバイダ実装クラスを使用したSOAP Webサービス
プロバイダ実装クラスを使用する場合の形態を次に示します。
プロバイダ実装クラスを使用する場合はスタブもWSDLも必要ないため,任意のSOAPメッセージを動的に送受信したいときに適しています。プロバイダ実装クラスはJAX-WSエンジンがマーシャルしたオブジェクトをそのまま受け取るため,Webサービス開発時に,APIを利用してSOAPメッセージを構成するXMLから値を直接取得したり,APIを利用してSOAPメッセージを構成するXMLを組み立てたりする必要があります。
(3) RESTful Webサービス(Webリソース)
RESTful Webサービス(Webリソース)はリソースクラスを実装することで実現します。
リソースクラスには,ルートリソースクラスとサブリソースクラスがあります。
ルートリソースクラスは,クラスレベルでPathアノテーションでアノテートされたJavaクラスです。サブリソースクラスは,クラスレベルでPathアノテーションでアノテートされていないJavaクラスです。
リソースクラスには次に示すメソッドのどれかを実装します。
-
リソースメソッド
-
サブリソースメソッド
-
サブリソースロケ−タ