本ドキュメントは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を継承したコンポーネント
|
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サービスをコンポーネントとして使用する場合に、このコンポーネントをアスペクトとして使用します。
|