WebSphere Application Server Network Deployment, Version 6.0.x   
             オペレーティング・システム: AIX , HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

カスタム・バインディング・プロバイダー

カスタム・バインディング・プロバイダー は、宣言メタデータ・ファイルを持つカスタム・データ・バインダー・クラスのパッケージです。 カスタム・バインディング・プロバイダーの主要な目的は、関連するカスタム・データ・バインダーを総計して特定のユーザー・シナリオをサポートすることです。 カスタム・バインディング・プロバイダーは、カスタム・データ・バインダーをエミッター・ツールや ランタイム・システムに接続するために使用します。そうすることで、エミッター・ツールは適切な成果物を生成することができ、 ランタイム・システムは既存タイプのマッピング・システムを拡大し、適用されたカスタム・データ・バインダーを反映して 呼び出すことができます。

カスタム・バインディング・プロバイダーが特定の XML スキーマ・タイプを処理するのに対して、 アプリケーションにはいくつかの関連する XML スキーマ・タイプが含まれます。 完全なバインディング・ソリューションを提供するには、さまざまなカスタム・データ・バインダーをまとめ、 宣言するメカニズムが必要です。 カスタム・バインディング・プロバイダーの概念は、カスタム・データ・バインダーのセットを エミッター・ツールまたはランタイム・システムに接続するために使用できる宣言モデルを定義します。

カスタム・データ・バインダーの情報を検討して、 カスタム・データ・バインダーおよび CustomBinder インターフェース (WebSphere Application Server に含まれている、 カスタム・データ・バインダーを定義するための API) について詳しく知ることができます。 これらの項目を検討したら、カスタム・バインダー・パッケージをデプロイする準備が整います。 このパッケージのデプロイ方法について学習するには、カスタム・データ・バインダーをデプロイするための使用パターンを参照してください。

宣言メタデータ・ファイル CustomBindingProvider.xml は、 単一の Java アーカイブ (JAR) ファイルのカスタム・プロバイダー・クラスを使用してパッケージ化された XML ファイルであり、/META-INF/services/directory にあります。 プロバイダーの JAR ファイルがパッケージ化されると、JAR ファイル内にあるバイナリー情報とメタデータ・ファイルを WSDL2Java コマンド行ツールおよびランタイム・システムが使用できるようになります。

次の例は CustomBindingProvider.xml ファイルの XML スキーマです。 最上位レベルのタイプは、マッピング・エレメントのリストを含む providerType です。 各マッピング・エレメントは関連するカスタム・データ・バインダーおよびプロパティー (xmlQName、javaName、qnameScope を含む) を定義します。 これらのプロパティーについて詳しくは、CustomBinder インターフェースを参照してください。 providerType には、serverapplication、または module の値を持つ、有効範囲と呼ばれる属性もあります。 サーバー・デプロイメントはこの有効範囲属性を使用して、競合を解決し、カスタム・バインディング階層を実現します。
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
    targetNamespace=
       "http://www.ibm.com/webservices/customdatabinding/2004/06"
    xmlns:customdatabinding=
        "http://www.ibm.com/webservices/customdatabinding/2004/06"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    elementFormDefault="qualified" attributeFormDefault="qualified">
	
   <xsd:element name="provider" type="customdatabinding:providerType"/>
   
   <xsd:complexType name="providerType">
   <xsd:sequence>
     <xsd:element name="description" type="xsd:string" minOccurs="0"/>
     <xsd:element name="mapping" minOccurs="0" maxOccurs="unbounded">
      <xsd:complexType>
        <xsd:sequence>
          <xsd:element name="description" type="xsd:string" minOccurs="0"/>
          <xsd:element name="xmlQName" type="xsd:QName"/>
          <xsd:element name="javaName" type="xsd:string"/>
          <xsd:element name="qnameScope"
                       type="customdatabinding:qnameScopeType"/>
          <xsd:element name="binder" type="xsd:string"/>
        </xsd:sequence>
       /xsd:complexType>
      </xsd:element>
       <xsd:attribute name="scope"
             type="customdatabinding:ProviderScopeType" default="module"/>
       </xsd:sequence>
   </xsd:complexType

  <xsd:simpleType name="qnameScopeType">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="simpleType"/>
         <xsd:enumeration value="complexType"/>
         <xsd:enumeration value="element"/>
      </xsd:restriction>
  </xsd:simpleType>

  <xsd:simpleType name="ProviderScopeType">
     <xsd:restriction base="xsd:string">
         <xsd:enumeration value="server"/>
         <xsd:enumeration value="application"/>
         <xsd:enumeration value="module"/>
     </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
以下は、CustomBinder インターフェースに導入された SDO DataGraph スキーマ用の CustomBindingProvider.xml ファイルの例です。 この例は、スキーマ・タイプ、DataGraphType、および Java タイプ、commonj.sdo.DataGraph 間のマッピングを表示します。 このマッピングを表すバインダーは、test.sdo.SDODataGraphBinder と呼ばれます。
<cdb:provider
	xmlns:cdb="http://www.ibm.com/webservices/customdatabinding/2004/06"
   xmlns:sdo="commonj.sdo">
   <cdb:mapping>
   		<cdb:xmlQName>sdo:DataGraphType</cdb:xmlQName>
   		<cdb:javaName>commonj.sdo.DataGraph</cdb:javaName>
   		<cdb:qnameScope>complexType</cdb:qnameScope>
   	 <cdb:binder>test.sdo.SDODataGraphBinder</cdb:binder>
   </cdb:mapping>
</cdb:provider>

開発のために、カスタム・データ・バインダーを WSDL2Java コマンド行ツールにインポートする必要があります。 カスタム・データ・バインダーは、Service Endpoint Interface および JSR 109 マッピング・データを含む開発の成果物が Web サービス記述言語 (WSDL) ファイルから生成される方法に影響を与えます。 WSDL2Java コマンド行ツールは WebSphere Application Server に同梱されており、カスタム・バインダー Java アーカイブ・ファイルまたはカスタム・バインダー・パッケージを使用してこれらの開発の成果物を生成します。

次の例は、CustomBinder インターフェースのトピックで照会されている SDO DataGraph スキーマを参照する WSDL ファイルです。
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://sdo.test"
   xmlns:impl="http://sdo.test"
   xmlns:intf="http://sdo.test"
   xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
   xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:xsd="http://www.w3.org/2001/XMLSchema"
   xmlns:sdo="commonj.sdo">

 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://sdo.test"
       xmlns="http://www.w3.org/2001/XMLSchema" xmlns:sdo="commonj.sdo">
   <import namespace="commonj.sdo" schemaLocation="sdo.xsd"/>
  </schema>
 </wsdl:types>

 <wsdl:message name="echoResponse">
  <wsdl:part element="sdo:datagraph" name="return"/>
 </wsdl:message>

 <wsdl:message name="echoRequest">
   <wsdl:part element="sdo:datagraph" name="parameter"/>
 </wsdl:message>

 <wsdl:portType name="EchoService">
   <wsdl:operation name="echo">
     <wsdl:input message="impl:echoRequest" name="echoRequest"/>
     <wsdl:output message="impl:echoResponse" name="echoResponse"/>
    </wsdl:operation>
 </wsdl:portType>

 <wsdl:binding name="EchoServiceSoapBinding" type="impl:EchoService">
   <wsdlsoap:binding style="document"
                     transport="http://schemas.xmlsoap.org/soap/http"/>
     <wsdl:operation name="echo">
        <wsdlsoap:operation soapAction=""/>
        <wsdl:input name="echoRequest">
         <wsdlsoap:body use="literal"/>
        </wsdl:input>

       <wsdl:output name="echoResponse">
          <wsdlsoap:body use="literal"/>
       </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>

  <wsdl:service name="EchoServiceService">
     <wsdl:port binding="impl:EchoServiceSoapBinding" name="EchoService">
       <wsdlsoap:address location="http://<uri>"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>
カスタム・データ・バインディング・パッケージを使用せずに WSDL2Java コマンドを実行すると、 JAX-RPC 仕様で指示されているパラメーター・タイプを持つ、次のサービス・エンドポイント・インターフェースが生成されます。
public interface EchoService extends java.rmi.Remote {
		public javax.xml.soap.SOAPElement
			echo(javax.xml.soap.SOAPElement parameter)
	throws java.rmi.RemoteException;
}
カスタム・データ・バインディング・パッケージを使用して WSDL2Java コマンドを実行すると、パラメーター・タイプを生成するのにカスタム・データ・バインダーが使用されます。 カスタム・データ・バインダーを適用するには、WSDL2Java ツールで -classpath オプションを使用します。 このツールはクラスパスを検索して、/META-INF/services/CustomBindingProvider.xml と同じファイル・パスを持つすべてのファイルを特定します。 以下は、パラメーター・タイプ commonj.sdo.Datagraph を持つサービス・エンドポイント・インターフェースを生成するためのコマンドの使用法の例です。
WSDL2Java -role develop-server -container web classpath sdobinder.jar echo.wsdl
生成されるサービス・エンドポイント・インターフェースは、次のようになります。
public interface EchoService extends java.rmi.Remote {
		 public commonj.sdo.DataGraph
			echo(commonj.sdo.DataGraph parameter)
	throws java.rmi.RemoteException;
}
カスタム・バインダーによりパッケージ化された JAR ファイルは、実行時に使用可能にして、 Web サービス・クライアントが、スタブ・ベースのクライアントまたは動的 起動インターフェース (DII) クライアントのいずれであるかにかかわらず、呼び出されることを確認する必要があります。 これは、サービスについても該当します。

API および SPI で使用される資料を検討するには、参照: 生成 API 資料を参照してください。 このトピックの説明に従って、API および SPI インターフェースを読み進めてください。

Web サービスの開発に使用する規格および API については、specifications を検討することもできます。




関連概念
カスタム・データ・バインダー
SAAJ (SOAP with Attachments API for Java) インターフェース
関連資料
CustomBinder インターフェース
カスタム・データ・バインダーをデプロイするための使用パターン
JAX-RPC アプリケーション用の WSDL2Java コマンド
Web サービス: 学習用リソース
概念トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 10:13:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/cwbs_custombinderprovider.html