このトピックでは、WSIF 使用時に適用される主な既知の制約事項をリストしています。
- スレッド化
- WSIF はスレッド・セーフではありません。
- 外部規格
- WSIF は以下をサポートしています。
- SOAP バージョン 1.1 (1.2 以降はサポート対象外)
- WSDL バージョン 1.1 (1.2 以降はサポート対象外)
WSIF は、WS-I に準拠していないため、Java API for XML-based Remote Procedure Calls (JAX-RPC) バージョン 1.1 (またはそれ以降) はサポートしていません。
- 完全なスキーマ解析
- WSIF は、完全なスキーマ解析はサポートしていません。例えば、
スキーマ内の複素数タイプの WSDL 参照は処理されず、属性も処理されません。
- XML スキーマの「再定義」エレメントの処理は行われず、無視されます。
- SOAP
- WSIF は、以下はサポートしていません。
- <parts> として渡される SOAP ヘッダー。
- SOAP 応答の参照されない添付ファイル。
- Document Encoded スタイルの SOAP メッセージ。
- SOAP プロバイダーのインターオペラビリティー
- 現在の WSIF のデフォルト SOAP プロバイダー (IBM Web サービス SOAP プロバイダー) は、
以前の (Apache SOAP) プロバイダー上で動作するサービスとの完全な相互運用は
果たしていません。この制約事項は、IBM Web サービス SOAP プロバイダーが、JAX-RPC 準拠の Web サービスと完全に相互運用できるように設計されているのに対し、Apache SOAP はそのようなサービスを提供できないことが原因となっています。この制約事項を克服する方法については、
WSIF SOAP プロバイダー: レガシー・アプリケーションでの作業を参照してください。
- SOAP 障害の WSIF サポートは、IBM Web Service SOAP プロバイダー
を使用して稼働した Web サービスが原因の SOAP 障害に制限されます。
注: これは、
本来 WSIF の制約事項ではありません。現在の SOAP 障害仕様では、Java 例外にマッピン
グする、SOAP 障害のエンコード方法については言及してません。
結果として、各 Web サービスのランタイム環境は、現在それ自身の SOAP 障害フォーマットとされています。IBM Web Service SOAP プロバイダーは、それ自身の応答 SOAP 障害を理解できますが、他のプロバイダーからの SOAP 障害は理解することができません。
- 型マッピング
- 現在の WSIF のデフォルト SOAP プロバイダー (IBM Web Service SOAP プロバイダー) は、
以前の (Apache SOAP) プロバイダーの作成後にファイナライズされた JAX-RPC 型マッピング規則に準拠しています。
大多数の型は、どちらのプロバイダーでも同じようにマップされます。
例外は、xsd:date、xsd:dateTime、xsd:hexBinary および xsd:QNameです。上記 4 つの型のいずれかを使用する場合は、
クライアントとサービスが同じマッピング規則を使用する必要があります。
次の表で、この 4 つの型のマッピング規則を詳しく示しています。
XML データ型 |
Apache SOAP Java マッピング |
JAX-RPC Java マッピング |
xsd:date |
java.util.Date |
非サポート |
xsd:dateTime |
非サポート |
java.util.Calendar |
xsd:hexBinary |
16 進数ストリング |
byte [ ] |
xsd:QName |
org.apache.soap.util.xml.QName |
javax.xml.namespace.QName |
- 配列と複素数タイプ
- WSIF は、一般的な複素数タイプはサポートしていません。
Java Bean にマップする複素数タイプのみを処理します。スキーマ複素数タイプを使用するには、
独自のカスタム・シリアライザーを作成する必要があります。
Web サービスの WSIF アウトバウンド呼び出しに特有の複素数タイプおよび配列は、
次のとおりです。
- WSIF は、WebSphere Studio Application Developer
- Integration Edition (WSAD-IE) メッセージ・ジェネレーターが生成した Java クラスをサポートします (WSDL ファイルを別の場所からダウンロードした通常の場合)。WSAD-IE ベースの生成は、BPEL エディター、
「Enterprise Services」コンテキスト・メニューで選択可能な生成アクション、
または Business Integration ツールバーを使用して、自動的に行われます。
- WSIF は、他のツール (基本 WSAD ツールなど) で生成された Java
Bean はサポートしません。
- WSAD-IE で生成された Java Bean の場合、WSDL で定義された属性は機能しません。
つまり、これらの属性は、複素数タイプを示すために生成された Java Bean には表示されますが、
WSIF が生成する SOAP 要求では表示されません。
- WSIF は、それが Java Bean のフィールドである場合は、配列をサポートしません。つまり、
WSIF は、<part> という名前で渡される配列のみをサポートします。
配列が Java Bean 内部でラップされる場合、
その配列は同じ方法ではシリアライズされません。
- オブジェクト・シリアライゼーション
- WSIF は、異なるリリース間でのオブジェクトのシリアライゼーションはサポートしていません。
- 非同期呼び出し
- WSIF は、すべてのプロバイダーに対する同期呼び出しをサポートしています。
JMS プロバイダーおよび SOAP over JMS プロバイダーの場合には、WSIF は非同期呼び出しもサポートしています。
非同期操作を実行する場合は、その前に、
supportsAsync() メソッドを呼び出す必要があります。
- EJB プロバイダー
- WSIF EJB プロバイダーのターゲット・サービスは、リモート・ホーム・インターフェースでなければなりません。
EJB ローカル・ホーム・インターフェースは使用できません。さらに、
EJB スタブ・クラスがクライアント・クラスパス上で使用できなければなりません。
- WebSphere Application Server 外部での実行
- WSIF は、WebSphere Application Server 外部での使用ではサポートされていません。