WSIF Java プロバイダーを使用すると、WSIF は Java コードを呼び出すことができます。これはつまり、Java 仮想マシン (JVM) や Tomcat テスト・ランタイム環境などのシン・クライアント環境で、ローカル Java プログラムへのショートカットを定義できるということです。 この情報とそれに関連したコード・フラグメントを使用すると、WSDL 拡張を作成して、WSIF サービスをローカル Java アプリケーションに関連付けることができるようになります。
Web Services Invocation Framework (WSIF) Java プロバイダーは、 Java 2 platform, Enterprise Edition (J2EE) 環境での使用は意図されていません。 WSIF Java プロバイダーを使用して Java コンポーネントを呼び出すクライアントと、Web サービスを Java コンポーネントとしてサーバー・サイドでインプリメントするクライアントには、相違点があります。
Java バインディングは、型マッピングのフォーマット・バインディングを利用します。 フォーマット・バインディングを使用すると、WSDL は XML スキーマ型と Java 型の間のマッピングを定義することができます。
Java プロバイダーでは、ターゲットとなる Java クラスがクライアントのクラスパスに存在する必要があります。 Java メソッドは、現行のスレッドおよびオブジェクト・リクエスト・ブローカー (ORB) コンテキストを介して、処理中にスレッド内で同期的に呼び出されます。
Java プロバイダーはトランザクションではありません。
Java プロバイダーは WSIF 同期タイムアウトを サポートしていません。Java プロバイダーは、Java メソッドの終了を待ってタイムアウトになるのではありません。
Java プロバイダーを使用するには、WSDL ファイルで 以下のバインディングを指定する必要があります。
<!-- Java binding --> <binding .... > <java:binding /> <format:typeMapping style="Java" encoding="Java"/>? <format:typeMap name="qname" formatType="nmtoken"/>* </format:typeMapping> <operation>* <java:operation methodName="nmtoken" parameterOrder="nmtoken" returnPart="nmtoken"? methodType="instance|constructor" /> <input name="nmtoken"? />? <output name="nmtoken"? />? <fault name="nmtoken"? />? </operation> </binding>
この例では、次のようになっています。
次の例では、<java:address> エレメントの className 属性は、呼び出すメソッドを含むオブジェクトの完全修飾クラス名を指定します。
<service ... > <port>* <java:address className="nmtoken"/> </port> </service>