サンプル本ドキュメントはS2Axis2について記述しています。WebサービスにRESTで接続する概要S2Axis2Examplesは、S2Axis2の基本的な機能を一通り使用したサンプルです。インストールについてはセットアップを参照してください。テストケースとして作成されています。それぞれ、以下のソースフォルダにあります。パッケージクライアント側では、リモート呼び出しの設定を、以下のdiconファイルで共通化しています。</component></components>コンポーネントをWebサービスとして公開するPOJOのクラスをWebサービスとして公開することが可能です。(Request/Response)」「一方向形式(Oneway)」をサポートしています。<aspect>oneWayRemoting</aspect></component>特定のインタフェースを公開する実装クラスを公開すると、不要なメソッドまで公開されてる場合があります(インタフェースを実装していない場合や複数のインタフェースを実装している場合など)。実装クラスHelloImplは二つのインタフェースを実装していますが、MessageSettableのメソッドsetMessage(String)はWebサービスとして公開しないものとします。このような場合には、公開するJavaインタフェースを指定します(実装したインタフェースが一つだけの場合や、実装した複数のインタフェースのメソッドを全て公開する場合には明示的に指定する必要はありません)。name="message">"Hello"</property></component>引数/戻り値としてBeanを使用するこのサンプルでは、サービスは引数および戻り値の型としてJavaBeansを使用しています。プリミティブ型(およびそのラッパクラス型)を使用している場合は、特に何も指定しなくても動作します。setter/getter}スコープを指定するAxis2は、スコープを指定して、サービスのインスタンスを管理することができます。S2Axis2では、S2コンテナがインスタンスを管理します。サービスをSessionスコープとして利用する場合には、以下のように指定します。</component></components>S2コンテナとAxis2におけるスコープの関連は、リファレンスを参照してください。services.xmlを利用してサービスを公開するAxis2で利用するservices.xmlを指定して、サービスをデプロイします。</operation></service>ここでは、「コンポーネントをWebサービスとして公開する」で利用したEchoと同じサービスを定義していますが、クライアントの処理は、変更する必要はありません。services.xmlを指定してデプロイしたサービスのインスタンス管理に、S2およびS2Axis2は関与しません。services.xmlで指定したサービスのインスタンスは、S2コンテナからは取得できない(他のコンポーネントにインジェクションできない)ことに注意してください。独自のWSDLファイルを利用してサービスを公開するエンドポイントのURLを変更したい場合など、独自のWSDLファイルを指定してサービスをデプロイすることが可能です。独自のWSDLファイルを適用するにはServiceDefを利用します。独自のWSDLファイルを適用するには、まず、利用するWSDLファイルをクラスパス直下のMETA-INFディレクトリ配下に配置します。WSDLのファイル名は、適用するサービス名に一致するようにします。例)WEB-INF/classes/META-INF/EchoFormCustomWSDL.wsdlWSDLを配置したら、以下のように、公開するサービスのdicon定義ファイルでServiceDefにパラメータを指定してください。</meta></component>ServiceDef#addParameterメソッドで、「useOriginalwsdl」を「true」と指定することで、独自のWSDLが適用されます。「modifyUserWSDLPortAddress」は、エンドポイントのURLを変更したい場合に指定してください。「false」を指定すると、WSDLで指定した値がそのまま利用されるようになります。サービスをデプロイ後、ブラウザで以下のようにURLを指定すると、WSDLを確認することができます。http://localhost:8080/s2axis2-examples/services/EchoFormCustomWSDL?wsdlクライアントで動的にオプションパラメータを変更する処理に応じて接続先を変更したい場合など、クライアントの処理でオプションパラメータを指定することが可能です。変更するにはS2AxisClientContextクラスを利用します。WebサービスにRESTで接続するS2Axis2で、Yahoo!のWebサービス用APIを利用してみます。Yahoo!のWebサービスに関する情報は、Yahoo!デベロッパーネットワークから得ることができます。Transfer)によってアクセスすることが可能です。本サンプルでは、Web検索のAPIを利用します。サービスはYahoo!のWebサービスとなるため、S2Axis2のクライアントの機能のみ使用します。YahooSearchDto.java(リクエストパラメータを保持するクラス)まず、ウェブ検索WebサービスのAPIにしたがって、リクエストパラメータを保持するDTOクラスを作成します。setter/getter}YahooSearch.java(サービス呼び出しのインタフェース)次に、サービスを呼び出すためのインタフェースを作成します。インタフェースのみを定義すれば、サービスを呼び出すことが可能です。GET/POSTのみがサポートされています)を特定するため、メソッドの名前の付け方に注意してください。してサービスを呼び出します。してサービスを呼び出します。dto);}YahooSearchTest.diconコネクタにはorg.seasar.remoting.axis2.connector.RESTConnectorを指定し、接続先のURLには、ウェブ検索WebサービスのリクエストURLを指定してください。上で作成したYahooSearchインタフェースに、RESTConnectorを設定したRemotingInterceptorをアスペクトとして指定します。<aspect>remoting</aspect></component>以上で、サービスを呼び出す準備が整いました。クライアントウェブ検索Webサービスを呼び出します。ここでは、S2TestCaseとして作成しています。