Transfer)に対応した形式でサービスをデプロイしたり、そのサービスにアクセスすることが可能です。本ドキュメントはS2Axis2におけるRESTの利用方法について記述しています。(Request/Response)である。GETでアクセスする場合、サービスやメソッドはURLに基づいて解釈されます。GETのパラメータは、そのままサービスのパラメータとなります。ヘッダも不要であり、ペイロード(送信データとなるパラメータ群)を直接送信します。サービスのパラメータには利用できません。POST/PUTを利用する必要があります(戻り値にオブジェクトクラスを利用するのは可能です)。サーバ側の設定デプロイ対象のサービスクラスS2Axis2でデプロイしたサービスは、デフォルトの状態でRESTに対応しています。インタフェースを定義することで、外部のサービスにREST形式でアクセスすることも可能です。デプロイ済みのサービスに対して、以下のようにURLを指定することで、アクセスが可能です(GETでのアクセス)。http://localhost:8080/s2axis2-examples/services/Echo/echo?id=1&message=test実行すると、以下のような結果が返ってきます。SOAPの形式ではなく、単にXML形式のデータが返ってきていることが分かります。</ns:echoResponse>クライアント側の設定REST形式でサービスにアクセスする場合は、専用のConnectorを利用します。<aspect>remoting</aspect></component>リクエストの構築dicon定義(クライアント側)Axis2でデプロイされたサービスにREST形式でアクセスする場合、URLは以下の形式になります。「serviceName」は呼び出すサービスのクラス名となります。クライアント側のdiconで以下のようにappendActionプロパティを設定する必要があります。Axis2は仕様としてメソッド名を付加する必要があるため、外部サービスなどを呼び出す場合とアクセスするURLに差分ができてしまいます。そのため、S2Axis2では、このようなプロパティを指定するようにしています。パラメータの指定リクエストパラメータは、呼び出すサービスのメソッド引数を利用して構築されます。1つのDTO(setter/getterを保持するJavaBeanクラス)として指定するか、シンプルタイプのパラメータ(複数可)として指定します。リクエストを構築する上で、アノテーションを利用することにより、より細かな指定が可能となります。詳細は、RESTに関するアノテーションを参照してください。以下のように、サービスのメソッド引数がDTOの場合の例を示します。setter/getter}上記のサービスを呼び出した場合、HTTPリクエストは以下のようになります。EchoDtoのパラメータ名が、そのままリクエストのパラメータに利用されます。以下のように、サービスのメソッド引数がシンプルタイプである場合の例を示します。この場合、必ず@RestUriParamアノテーションを指定してください。message);}上記のサービスを呼び出した場合、HTTPリクエストは以下のようになります。@RestUriParamアノテーションで指定したパラメータ名が、リクエストのパラメータに利用されます。S2Axis2では、呼び出すサービスのメソッド名から、自動的に上記のHTTPメソッドやその際に利用されるContent-Typeを判別します。上記以外HTTPメソッド/Content-Typeに対しても、アノテーションを利用することにより、より細かな指定が可能となります。詳細は、RESTに関するアノテーションを参照してください。外部サービスの呼び出しサービスのインタフェースのみを定義することで、外部サービスを呼び出すことが可能です。ここでは、AmazonのWebサービスを呼び出す例を示します。デフォルトの設定を変更しています。baseURLとして定義します。