URL を使用した WSDL ファイルの公開
URL を 使用して Web サービス記述言語 (WSDL) ファイルを公開することができます。
始める前に
webservices.xml の <wsdl-file> エレメントで参照されるファイルは、他の WSDL ファイルまたは XML Schema Definition (XSD) ファイルをインポートする場合があります。 通常、すべての WSDL ファイルまたは XSD ファイルは、最初は、Enterprise JavaBeans (EJB) を使用している場合には META-INF/wsdl ディレクトリーに配置され、Java™ を使用している場合には WEB-INF/wsdl ディレクトリーに配置されます。 WSDL ファイルまたは XSD ファイルがこれらのディレクトリーに配置されていない場合、 <wsdl-file> によって参照されるファイルとそのインポート・ファイルは、 公開を目的として wsdl ディレクトリーにコピーされます。
URL 照会ストリングには 2 つの形式があります。最初の形式は、 サービスに /wsdl を付加して、HTTP および JMS バインディングのみを戻します。 2 番目の形式は、サービスに /extwsdl を付加して、 拡張 WSDL ファイル (HTTP、JMS、および EJB バインディングなど) を戻します。WSDL ファイルに EJB バインディングのみが含まれ、 /wsdl 照会が使用される場合は、ブラウザーに、 WSDL ファイルに HTTP バインディングも JMS バインディングも存在しないという意味のエラー・メッセージが表示されます。 このエラー・メッセージでは、代わりに /extwsdl 照会の使用が提案されます。 URL を使用して WSDL ファイルを公開する場合は、 アプリケーションに Web モジュールが必要です。この Web モジュールは、 アプリケーションが提供するか、HTTP ルーター・モジュールの形を取るかのいずれかです。 EJB アプリケーションに、JMS バインディングか EJB Web サービス・バインディングのみを持つ WSDL ファイルが含まれている場合は、 endptEnabler コマンドを使用して、HTTP ルーター・モジュールをアプリケーションに追加することができます。
このタスクについて
URL を使用して WSDL ファイルを公開するには、以下のようにします。
手順
例
<module-root>/
WEB-INF/
webservices.xml /* the <wsdl-file> element points to "WEB-INF/wsdl/fooImpl.wsdl"*/
web.xml
ibm-webservices-bnd.xml
wsdl/
fooImpl.wsdl /* imports foo.wsdl which is an interface wsdl */
foo.wsdl /* type definition for the interface */
foo サービスの SOAP アドレスが http://examples.com:9080/services/foo の場合、foo サービスの最外部 WSDL を検索する単純な方法は、http://examples.com:9090/services/foo/wsdl または http://examples.com:9090/services/foo/wsdl/ という形式を使用することです。URL は http://examples.com:9090/services/foo/wsdl/fooImpl.wsdl にリダイレクトされます。この fooImpl.wsdl は、最外部 WSDL ファイルの名前です。
fooImpl.wsdl ファイルにはインポート <import namespace="http://examples.com/foo" location="a/b/foo.wsdl> があるため、URL http://examples.com:9090/services/foo/wsdl/a/b/foo.wsdl を使用して foo.wsdl ファイルを取得します。