本ドキュメントはS2Axis2 について記述しています。
s2axis2.dicon
S2Axis2が提供するdiconファイルです。s2axis2-x.x.x.jarファイルの中に含まれているので、ロケーションを気にすることなくincludeすることができます。サーバが側では必須となります。
* C:クライアント/S:サーバ
名前 |
C |
S |
内容 |
説明 |
axis-deploy |
× |
○ |
文字列 |
内容で指定された文字列をパス名とするservice.xmlファイルをAxisにデプロイします。ファイルのパス名はクラスパスからの相対パスで指定します。
service.xmlファイルの中で指定されたサービスやハンドラのインスタンス管理はAxisによって行われます。
|
プロパティ |
C |
S |
内容 |
説明 |
axis-service |
× |
○ |
空 |
親要素で記述されたコンポーネントをサービスとしてAxisにデプロイします。
コンポーネントがメソッドの定義されたインタフェースを実装している場合は、そのメソッドが公開されます。インタフェースを実装していなければ、java.lang.Object 型で定義されているものを除いたpublic メソッドが公開されます。 |
ServiceDef 型のコンポーネント |
親要素で記述されたコンポーネントをサービスとしてAxisにデプロイします。
詳細はServiceDef の説明を参照してください。 |
S2コンテナが管理コンポーネントのスコープ(diconファイルで指定するinstance属性)と、Axis2が管理するスコープの対応は以下のとおりです。
S2のinstance属性 |
Axis2のスコープ |
singleton |
application |
application |
application |
session |
transport session |
request |
request |
prototype |
request |
サーバ側で使用するコンポーネントで、<meta> 要素の内容に設定されます。サービスとして公開するコンポーネントの詳細を指定するために使われます。
プロパティ
プロパティ |
型 |
説明 |
serviceType |
Class |
公開するサービスの型を指定します。特定のインタフェース型を指定することで、不要なメソッドが公開されることを防ぐことが出来ます。
省略するとコンポーネントの型になります。ただし、コンポーネントがメソッドの定義されたインタフェースを一つだけ実装している場合には、そのインタフェース型になります。 |
targetNamespace |
String |
targetNamespace
を指定します。省略した場合は、デフォルト値の"http://ws.apache.org/axis2"が使用されます。 |
schemaNamespace |
String |
スキーマの名前空間を指定します。省略した場合は、サービスのパッケージ名を利用した値が使用されます。 |
excludeOperations |
Stringのリスト |
公開しないメソッドの名前を指定します。String型のリストとして指定します。 |
メソッド
メソッド |
説明 |
addMessageReceiver |
サービスが使用する、デフォルトのMessageReciverを指定します。以下の引数を指定します。
- MEP(Message Exchange Pattern)
- org.apache.axis2.engine.MessageReceiverを継承したコンポーネント
|
addParameter |
サービスが使用するパラメータを指定します。以下の引数を指定します。
- パラメータ名
- パラメータ値
|
diconファイルの定義例
<component name="Echo" class="org.seasar.remoting.axis2.examples.ex01.EchoImpl">
<meta name="axis-service">
<component class="org.seasar.remoting.axis2.ServiceDef">
<property name="serviceType">@org.seasar.remoting.axis2.examples.ex01.Echo@class</property>
<property name="targetNamespace">"http://ws.apache.org/axis2"</property>
<property name="schemaNamespace">"http://examples/xsd"</property>
<property name="excludeOperations">{"method1", "method2"}</property>
<initMethod name="addMessageReceiver">
<arg>"http://www.w3.org/2004/08/wsdl/in-out"</arg>
<arg>new org.apache.axis2.rpc.receivers.RPCMessageReceiver()</arg>
</initMethod>
<initMethod name="addMessageReceiver">
<arg>"http://www.w3.org/2004/08/wsdl/in-only"</arg>
<arg>new org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver()</arg>
</initMethod>
</component>
</meta>
</component>
クライアント側で使用するコンポーネントで、Web サービスへの動的な接続に使用される抽象クラスです。
このクラスを継承して、独自のConnector を作成することも可能です。
プロパティ
プロパティ |
型 |
説明 |
properties |
java.util.Properties |
Axis2で利用するシステムプロパティを指定します。
Axis2のリポジトリや設定ファイルであるaxis2.xmlのパス指定に利用します。 |
options |
org.apache.axis2.client.Options |
Axis2のクライアントで指定するオプションを指定します。 |
baseURL |
String |
接続するサービスの基礎になるURLを指定します。
このURLと、S2RemotinのRemotingInterceptorをアスペクトとして設定されたプロキシコンポーネントの名前
(<component>要素のname属性の値) を連結したURLが、接続するサービスのURLとなります。 |
timeout |
int |
サービス呼び出し時のタイムアウト値(ミリ秒)を指定します。 |
S2Remotingが提供するコンポーネントです。
クライアント側でWebサービスをコンポーネントとして使用する場合に、このコンポーネントをアスペクトとして使用します。
クライアント側で、動的にパラメータを指定するために使われます。
プロパティ
プロパティ |
型 |
説明 |
endpointURL |
String |
サービスに接続するURLです。nullを指定した場合は、dicon定義で指定されたものが利用されます。 |
REST形式で、サービスにアクセスする際に必要となるアノテーションです。このアノテーションは、 将来的にJAX-RS(JSR311)に置き換わる可能性があります。
- 適用対象
- サービスのインタフェース
プロパティ |
デフォルト値 |
説明 |
value |
サービスのインタフェース名 |
公開されるサービスのリソース名(=サービス名)です。 |
- 適用対象
- サービスのメソッド
プロパティ |
デフォルト値 |
説明 |
name |
サービスのメソッド名 |
URIに付加されるサービスのメソッド名です。 |
httpMethod |
サービスのメソッド名から自動判別 |
リクエストで指定されるHTTPメソッドです。通常は、サービスのメソッド名から自動判別されますが、明示的に指定したい場合に利用します。 |
contentType |
サービスのメソッド名から自動判別 |
リクエストのHTTPヘッダで指定されるContent-Typeです。通常は、サービスのメソッド名から自動判別されますが、明示的に指定したい場合に利用します。 |
- 適用対象
- サービスのメソッド引数がDTOの場合はDTOのプロパティ、シンプルタイプ(プリミティブ型およびそのラッパ型、java.util.Date/java.util.Calendarの日付型)のパラメータの場合は引数自体
プロパティ |
デフォルト値 |
説明 |
value |
引数名 |
リクエストで指定されるパラメータ名です。サービスの引数がシンプルタイプのパラメータの場合は、必ず指定する必要があります。 |
|