Web サービス・エンドポイントのカスタマイズ

ibm-ws-bnd.xml ファイルを使用して、ご使用のアプリケーション内のサーバー・プロバイダーおよびクライアントの Web サービス・エンドポイントをカスタマイズできます。

始める前に

ibm-ws-bnd.xml ファイルは、Web ベースの Web サービス・アプリケーション (WAR ファイル) の /WEB-INF ディレクトリー内、または EJB ベースの Web サービス・アプリケーション (JAR ファイル) の /META-INF ディレクトリー内になければなりません。クライアントが clientContainer で実行されている場合、ibm-ws-bnd.xml ファイルは、クライアント EAR 内の JAR ファイルの /META-INF ディレクトリーになければなりません。

このタスクについて

ibm-ws-bnd.xml ファイルを構成することで、サービス・プロバイダーとコンシューマーの両方で Web サービス・アドレス構成をオーバーライドして、Liberty にデプロイされたアプリケーション内で特定のURL を使用して Web サービスをエクスポートし、JAX-WS クライアント・アプリケーションから Web サービスをインポートすることができます。

ibm-ws-bnd.xml ファイル 内で構成できるすべての使用可能なエレメントについては、『Liberty: ibm-ws-bnd.xml ファイル』を参照してください。

手順

  1. サービス・プロバイダーの Web サービス・バインディングをオーバーライドします。
    1. Web サービス・エンドポイント・アドレスをオーバーライドします。 webservice-endpoint エレメントでは、port-component-name 属性によって識別される Web サービス・エンドポイントのエンドポイント・アドレスをオーバーライドできます。 address 属性には、ご使用のアプリケーションのコンテキスト・ルートへの相対パスを指定します。
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<!-- 0 to many endpoint descriptions -->
      	<webservice-endpoint port-component-name="Hello" address="/hiService" />
      </webservices-bnd>
    2. EJB ベースの Web サービスのコンテキスト・ルートをオーバーライドします。 Web サービスが EJB ベースの Web サービスで、EJB アプリケーション (JAR アーカイブ) で定義されている場合、デフォルトのコンテキスト・ルートは EJB jar 名になります。ただし、http-publishing エレメントの context-root 属性を使用してデフォルト値をオーバーライドすることができます。
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<!-- optional http publishing module overrides -->
      	<http-publishing context-root="/HiServer" />
      </webservices-bnd>
      注: context-root 属性は、Web サービスが EJB ベースの Web サービスで、EJB JAR アーカイブで定義されている場合のみ有効になります。Web サービスが Web アプリケーション (WAR アーカイブ) で定義されている場合、それが EJB ベースの Web サービスであるかどうかにかかわらず、http-publishing エレメントの context-root 属性は無視され、このコンテキスト・ルートが常にその Web アプリケーションのコンテキスト・ルートになります。
  2. クライアント・アプリケーションの Web サービス・バインディングをオーバーライドします。
    1. WSDL 文書のロケーションをオーバーライドします。 service-ref エレメントでは、Web サービス・クライアント・アプリケーション内の Web サービス参照の WSDL ロケーションをオーバーライドできます。
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<service-ref name="services/hello" wsdl-location="http://localhost:9080/HiServer/hiService?wsdl" />
      </webservices-bnd>
      wsdl-location 属性には絶対 URI (HTTP またはファイル・プロトコルのいずれか) を指定しますが、クライアント・アプリケーションのルートを基準とした相対 URI を指定することもできます。以下に例を示します。
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<service-ref name="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl" />
      </webservices-bnd>
    2. ポート・アドレスをオーバーライドします。 port エレメントでは、Web サービス・クライアントの Web サービス参照内のポートのアドレスをオーバーライドできます。
      <?xml version="1.0" encoding="UTF-8"?>
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<service-ref name="services/hello" wsdl-location="WEB-INF/wsdl/hiService.wsdl">
      		<port name="HelloPort" namespace="http://server.ejb.hello.sample.jaxws.ws.ibm.com/" 				address="http://localhost:9080/HiServer/hiService" />
      	</service-ref>
      </webservices-bnd>
      port エレメントの address 属性には、Web サービス・ポートの絶対 URI を指定します。参照先の Web サービスにポートが 1 つしかない場合、service-ref エレメントの port-address 属性を使用できます。以下に例を示します。
      <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 		xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 			version="1.0">
      	<service-ref name="services/hello" 			port-address="http://localhost:9080/HiServer/hiService" />
      </webservices-bnd>
      注: service-ref エレメントの port-address 属性と port エレメントの address 属性がどちらも指定されている場合、 port エレメントの address 属性が有効になります。

トピックのタイプを示すアイコン タスク・トピック

ファイル名: twlp_dep_jaxws_binding.html