ヘッダーをスキップ

Oracle Application Server Web Services開発者ガイド
10g(10.1.3.1.0)

B31868-01
目次
目次
索引
索引

戻る 次へ

14 J2EE Webサービス・クライアントのアセンブル

この章では、J2EEコンテナ内でのWebサービス・クライアントの開発方法を説明します。バージョン2.4のサーブレット、2.1のEJBまたは2.0のJSPアプリケーションなど、J2EE 1.4互換コンテナの任意のコンポーネントを、J2EE Webサービス・クライアントとして使用できます。

この章の内容は、次のとおりです。

J2EE Webサービス・クライアントの概要

J2EEプラットフォームにより、クライアント・アプリケーションがWebサービスにアクセスするための環境が提供されます。J2EE環境では、クライアント・サイドからのWebサービスへのアクセス情報は、デプロイメント・ディスクリプタによって定義します。このアクセス情報はデプロイ時に変更できます。さらに、J2EEプラットフォームは、Webサービスへのアクセスの作成および初期化を支援します。

J2EE Webサービス・クライアントは、宣言的なセキュリティ、トランザクションおよびインスタンス管理など、J2EEプラットフォームのメリットを継承します。プラットフォームの持つこれらの特性と一緒にOracleAS Web Servicesの管理フレームワークを利用することで、SOAPのロギングおよび監査、WS-ReliabilityおよびWS-Securityを構成できるようになります。

J2SE Webサービス・クライアントとは異なり、J2EEクライアントはOC4Jコンテナ内に存在し、OC4Jコンテナによって管理されます。プロキシ・コードの生成やパッケージ化は不要です。JSP、サーブレットおよびEJBに容易に埋め込んで移植できる、Webサービス・アクセス用のクライアント・アプリケーションを構築できます。コンテナ管理の永続性(CMP)、Bean管理の永続性(BMP)およびメッセージドリブンBean(MDB)などのEJB変数が、Webサービス・エンドポイントをコールアウトできます。

J2EE Webサービス・クライアントのアセンブル方法

必要な情報: 次の各項には、J2EE Webサービス・クライアントのアセンブルに必要な手順が含まれています。

オプションの情報: 次の各項には、作成するクライアントのタイプまたはクライアントが使用する機能に依存する、オプションの情報が含まれる場合があります。

前提条件

開始する前に、次のファイルと情報を用意してください。

J2EE Webサービス・クライアントのアセンブル手順

WebServicesAssemblerツールを使用して、サービス・エンドポイント・インタフェースおよびJ2EE Webサービス・クライアントをアセンブルします。次に、デプロイメント・ディスクリプタを編集し、Webサービスへのアクセス情報を追加します。次の手順でこれらのタスクを詳細に説明します。

  1. 「前提条件」の項で説明したWSDLおよび情報を、WebServicesAssemblerのgenInterfaceコマンドに入力します。

    次の例では、HelloService.wsdlを使用して、HelloInterfaceoracle.demo.helloパッケージに生成します。

    コマンドライン:

    java -jar wsa.jar 
         -genInterface 
         -wsdl HelloService.wsdl 
         -output build 
         -packageName oracle.demo.hello 
    

    Antタスク:

    <oracle:genInterface wsdl="${etc.web1.dir}/HelloService.wsdl"
            output="build"
            packageName="oracle.demo.hello"
    />
    

    このコマンドおよびAntタスクの説明:

    • genInterface: 各ポート・タイプのサービス・エンドポイント・インタフェースと、WSDLに定義された複合型に対応するJava値タイプ・クラス(Bean)を作成します。また、XMLスキーマ型とJava値タイプ・クラス間のマッピングを記述するJAX-RPCマッピング・ファイルも作成されます。「genInterface」を参照してください。

    • wsdl: WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。「wsdl」を参照してください。

    • output: 生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。「output」を参照してください。

    • packageName: JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。「packageName」を参照してください。

  2. J2EEコンポーネントのデプロイメント・ディスクリプタを編集し、<service-ref>要素を追加します。この要素には、Webサービスへのアクセス情報のすべてが取得されます。

    <service-ref>要素およびそのサブ要素のサンプルは、「J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法」を参照してください。

    クライアントがJAX-RPCハンドラの形式でのメッセージ処理も行う場合は、これらのハンドラもデプロイメント・ディスクリプタに追加しておく必要があります。デプロイメント・ディスクリプタへのハンドラ情報の追加の詳細は、「メッセージ処理用JAX-RPCハンドラのデプロイメント・ディスクリプタへの追加方法」を参照してください。

  3. クライアントのデプロイ・モジュールを、EARファイルにアセンブルします。

    1. すべてのクライアント・ファイルをコンパイルします。

    2. デプロイメント・ディスクリプタ・ファイルを適切な位置にコピーします。

      たとえば、EJBの場合は、WSDLをMETA-INF/wsdl/にコピーし、JAX-RPCマッピング・ファイルおよびejb-jar.xmlorion-ejb-jar.xmlなどのデプロイメント・ファイルはMETA-INFにコピーします。サーブレット、EJBまたはJSP Webサービス・クライアントの各ファイルの位置は、「J2EEクライアントのパッケージ構造の概要」を参照してください。

    3. クライアントのデプロイ・モジュールをパッケージします。

  4. クライアントのデプロイ・モジュールをデプロイします。

    EJB、JSPまたはその他のJ2EEクライアントをデプロイするには、次のステップに従います。アプリケーション・クライアントをデプロイする場合は、これらのステップをスキップし、「アプリケーション・クライアント・モジュールのデプロイと実行の手順」に進みます。

    1. OC4Jを起動します。次は、OC4Jを起動するコマンドのサンプルです。

      java -jar oc4j.jar
      
    2. クライアント・モジュールをOC4Jにデプロイします。次は、デプロイメント・コマンドのサンプルです。

      java -jar admin_client.jar deployer:oc4j:<oc4jHost>:<oc4jPort> <adminID> 
      <adminPassword> 
               -deploy 
               -file .\client\myClient.ear 
               -deploymentName myClient 
               -bindWebApp default-web-site
      

      oc4jHostおよびoc4jPort変数は、OC4Jサーバーのホスト名およびポート番号です。adminIDおよびadminPasswordは、OC4Jサーバーのユーザー名およびパスワードです。次は、-deployスイッチのサブスイッチです。

    • file: デプロイするEARファイルのパスおよびファイル名。

    • deploymentName: ユーザー定義のアプリケーション・デプロイ名。OC4J内でのアプリケーションの識別に使用します。

    • bindWebApp: Webアプリケーションのバインド先のWebサイト。アプリケーションへのアクセスに使用するWebサイトです。

  5. EJBまたはJSPクライアントを実行します。

    アプリケーション・クライアントを実行する場合は、「アプリケーション・クライアント・モジュールのデプロイと実行の手順」を参照してください。

J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法

J2EEコンポーネントのデプロイメント・ディスクリプタを編集し、コンポーネントがWebサービス・エンドポイントにアクセスするための情報を追加する必要があります。

デプロイメント・ディスクリプタを編集し、<service-ref>要素を追加します。この要素を追加することで、EJB、JSPまたはサーブレットを、リモートWebサービスを起動可能なWebサービス・クライアントとして使用できます。<service-ref>要素およびそのサブ要素には、Webサービスへのアクセス情報がすべて取得されます。この情報には、WSDLおよびマッピング・ファイルの位置、サービス・インタフェース、サービス・ポート、サービス・ポートのサービス・エンドポイント・インタフェースなどがあります。<service-ref>要素に格納される可能性のある情報の詳細は、service-ref(J2EEクライアント)スキーマを参照してください。

http://java.sun.com/xml/ns/j2ee/j2ee_web_services_client_1_1.xsd

例14-1は、MyHelloService Webサービス用のweb.xmlデプロイメント・ディスクリプタに追加された、サンプルの<service-ref>要素を示します。この例に含まれる各<service-ref>サブ要素を、表14-1で説明します。この<service-ref>のサンプルでは、スキーマで使用可能なすべてのWebサービス・アクセス情報のサブセットのみが使用されている点に注意してください。

例14-1    service-ref要素のサンプルの内容

<service-ref>
    <service-ref-name>service/MyHelloServiceRef</service-ref-name>
    <service-interface>javax.xml.rpc.Service</service-interface>
    <wsdl-file>WEB-INF/wsdl/HelloService.wsdl</wsdl-file>
    <jaxrpc-mapping-file>WEB-INF/HelloService-java-wsdl-mapping.xml
    </jaxrpc-mapping-file>
    <service-qname xmlns:service-qname_ns__="http://hello.demo.oracle/">
    service-qname_ns__:HelloService</service-qname>
    <port-component-ref>
         <service-endpoint-interface>oracle.demo.hello.HelloInterface
         </service-endpoint-interface>
         <port-component-link></port-component-link>
    </port-component-ref>
</service-ref>  

表14-1で、このサンプル内で使用されている<service-ref>サブ要素を説明します。

表14-1    <service-ref>要素のサブ要素 
service-refサブ要素  説明 

<jaxrpc-mapping-file> 

JAX-RPCマッピング・ファイルの完全修飾パスを指定します。 

<port-component-link>(オプション) 

Webサービスをクライアントと同じモジュールに実装してある場合は、この要素を追加することでサービスにアクセスできます。この要素の詳細は、「同じモジュール内のクライアントからのWebサービスへのアクセス方法」を参照してください。 

<port-component-ref> 

コンテナへのクライアントの依存性を宣言します。この依存性はサービス・エンドポイント・インタフェースをWSDLポートに解決するために必要です。このサブ要素は、オプションとして、サービス・エンドポイント・インタフェースと特定のポート・コンポーネントの関連付けも行います。コンテナは、Service.getPort(Class)メソッド・コールに対してのみこれを使用します。 

<service-endpoint-interface> 

WSDLポートのサービス・エンドポイント・インタフェースとなる完全修飾Javaクラスを指定します。 

<service-interface> 

クライアントが依存するJAX-RPCサービス・インタフェースの完全修飾クラス名を指定します。ほとんどの場合、値としてjavax.xml.rpc.Serviceを指定します。また、JAX-RPCの生成するサービス・インタフェース・クラスを指定することもできます。 

<service-qname> 

サービスのサービスQNameを指定します。

  • xmlns:ns: WSDLのtargetNamespace値にマッピングされます。

  • ns: WSDLのservice name属性にマッピングされます。

 

<service-ref-name> 

クライアントによって割り当てられるJNDIパスおよびサービス名を指定します。 

<wsdl-file> 

WSDLファイルの完全修飾パスを指定します。 

アプリケーション・クライアント・モジュールのデプロイと実行の手順

アプリケーション・クライアント・モジュールをデプロイおよび実行するには、次の手順に従ってください。EJB、JSPまたはその他のJ2EEクライアントの場合とは異なり、生成されるdeployment-cache.jarを格納するディレクトリを指定する必要があります。また、実行コマンドにdeployment-cache.jarの位置を指定することも必要です。

  1. OC4Jを起動します。次は、OC4Jを起動するコマンドのサンプルです。

    java -jar oc4j.jar
    
  2. アプリケーション・クライアント・モジュールをOC4Jにデプロイします。

    次は、デプロイメント・コマンドのサンプルです。

    java -jar admin_client.jar deployer:oc4j:<oc4jHost>:<oc4jPort> <adminID> 
    <adminPassword> 
             -deploy 
             -file .¥client¥myAppClient.ear 
             -deploymentName myAppClient 
             -deploymentDirectory C:¥home¥myDir
    

    このコマンドは、deployment-cache.jarファイルを作成し、C:¥home¥myDirに格納します。

    oc4jHostoc4jPortadminIDadminPasswordの各変数、および-deployfileおよびdeploymentNameサブスイッチの詳細は、「J2EE Webサービス・クライアントのアセンブル手順」ステップ4bを参照してください。

    deploymentDirectoryサブスイッチには、OC4Jによるdeployment-cache.jarのデプロイ先となる位置を指定します。この例では、OC4JはC:¥home¥myDirにこのファイルをデプロイします。このサブスイッチを指定しない場合は、OC4JはアプリケーションをディレクトリOC4J_HOME/application-deployments/にデプロイします。空の文字列(" ")を指定すると、OC4Jはアプリケーションをデプロイするたびに、常にEARファイルからデプロイ構成を読み取ります。

  3. クライアントのデプロイ・モジュールを実行します。アプリケーション・クライアントの場合は、クラスパスにdeployment-cache.jarの位置を含めておく必要があります。次は、実行コマンドのサンプルです。

    java -classpath .:C:¥home¥myDir¥deployment-cache.jar:'oc4jclient.jar'
      :appclient.jar oracle.myappclient.classname
    

    このサンプルでは、appclient.jarにクラスoracle.myappclient.classnameが含まれているものと想定しています。

同じモジュール内のクライアントからのWebサービスへのアクセス方法

Oracle Application Serverがクライアントと同じモジュールに実装されているWebサービスにアクセスできるようにするには、クライアントのデプロイメント・ディスクリプタの<service-ref>句に<port-component-link>要素を追加し、構成system-application.xmlPortComponentLinkResolverプロパティを追加します。このタスクを、次の手順で簡単に説明します。

  1. <port-component-link>要素を、J2EEクライアントのデプロイメント・ディスクリプタの<service-ref>句に追加します。

    このステップの詳細は、「J2EEクライアントのデプロイメント・ディスクリプタへのポート・コンポーネント・リンクの追加方法」を参照してください。

  2. Oracle Application Serverをシャットダウンします。

  3. system-application.xmlサーバー構成ファイルに、PortComponentLinkResolverプロパティを追加します。このファイルは、ディレクトリORACLE_HOME/j2ee/home/configにあります。

    次の行をこのファイルに追加します。

    <ejb-module id="PortComponentLinkResolver" 
    path="../../../webservices/lib/wsserver.jar"/>  
    
  4. Oracle Application Serverを再起動します。

J2EEクライアントのデプロイメント・ディスクリプタへのポート・コンポーネント・リンクの追加方法

Webサービスをクライアントと同じコンテナに実装してある場合に、サービスにアクセスできるようにするには、J2EEクライアントのデプロイメント・ディスクリプタ(web.xmlejb-jar.xmlまたはapplication-client.xml)の<service-ref>句に<port-component-link>要素を追加します。

<port-component-link>要素は、<port-component-ref>を、サーバー・サイドのデプロイメント・ディスクリプタ内の特定ポート・コンポーネントにリンクします。<port-component-name>要素は、サーバー・サイドのデプロイメント・ディスクリプタ、webservices.xml内にあります。

次の各例はこの関係を示したものです。例14-2webservices.xmlフラグメントは、EJB InterModuleEjbを公開するWebサービスのデプロイ構成を示します。このフラグメントでは、ポート・コンポーネント名はInterPCです。例14-3に示すクライアント・サイドのデプロイメント・ディスクリプタでは、この名前が<service-ref>句の<port-component-link>要素から参照されています。この要素を使用することで、J2EEクライアントはWebサービスにアクセスできます。

これらの例では、WebサービスがJ2EE Webサービス・クライアントと同じコンテナで動作しているものと想定しています。

例14-2    webservices.xmlフラグメント、ポート・コンポーネント名の識別

<webservices>
  <webservice-description>
    <webservice-description-name>InterModuleEjb</webservice-description-name>
    <wsdl-file>META-INF/wsdl/InterModuleService.wsdl</wsdl-file>
    <jaxrpc-mapping-file>META-INF/InterModuleService.xml</jaxrpc-mapping-file>
    <port-component>
      <port-component-name>InterPC</port-component-name>
      <wsdl-port
        xmlns:wsdl1="http://PortCompLink.org/ejb/inter">wsdl1:InterModuleSeiPort
      </wsdl-port>
      <service-endpoint-interface>oracle.demo.InterModuleSei
      </service-endpoint-interface>
      <service-impl-bean>
        <ejb-link>InterModuleEjb</ejb-link>
      </service-impl-bean>
    </port-component>
</webservices> 

例14-3は、クライアント・サイドのデプロイメント・ディスクリプタのフラグメントを示します。ここでは、サーバー・サイドのデプロイメント・ディスクリプタ内の<port-component-name>要素の値が、<service-ref>句の<port-component-link>要素から参照されています。この要素を使用することで、クライアントはWebサービスにアクセスできます。

<port-component-link>のポート・コンポーネント名の値には、接頭辞としてPortCompLinkEjb-ejb.jar#が付けられている点に注目してください。この値は、EJB名を、EJB名が含まれているJARファイルの名前で修飾したものです。

例14-3    クライアント・サイドのデプロイメント・ディスクリプタ内の<port-component-link>要素

  <service-ref>
    <service-ref-name>service/portcomplink/inter</service-ref-name>
    <service-interface>javax.xml.rpc.Service</service-interface>
    <wsdl-file>META-INF/wsdl/InterModuleService.wsdl</wsdl-file>
    <jaxrpc-mapping-file>META-INF/InterModuleService.xml</jaxrpc-mapping-file>
    <port-component-ref>
       <service-endpoint-interface>oracle.demo.InterModuleSei
       </service-endpoint-interface>
       <port-component-link>PortCompLinkEjb-ejb.jar#InterPC</port-component-link>
    </port-component-ref>
  </service-ref> 

デプロイおよび実行時に対するOC4J固有のプラットフォーム情報の追加方法

<service-ref-mapping>要素は、OC4J固有のデプロイメント・ディスクリプタ・ファイルであるorion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xml<orion-web-app>要素のサブ要素として指定できます。このサブ要素によって、OC4Jによって実行時およびデプロイ時に生成される独自のWebサービス参照設定を定義します。この要素を使用して、次の情報を構成できます。

<service-ref-mapping>要素は、標準のデプロイメント・ディスクリプタに含まれている<service-ref>要素との組合せで使用します。<service-ref>要素には、EJB、JSPまたはサーブレットを、リモートWebサービスを起動するためのWebサービス・クライアントとして使用するための情報を指定します。

<service-ref>要素をweb.xmlejb-jar.xmlまたはapplication-client.xmlファイルのいずれかに指定した場合には、対応する<service-ref-mapping>要素を、orion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xmlファイルのいずれかに指定できる点に注意してください。

<service-ref-mapping>要素によってサポートされる機能の詳細は、orion-weborion-ejb-jarおよびorion-application-clientの各XSDにインポートされているservice-ref-mapping-10_0.xsdを参照してください。service-ref-mapping-10_0.xsdに値を設定するための、Oracle JDeveloperウィザードのようなツールは、現時点ではサポートされていません。スキーマを参照し、XMLファイルを手動で編集する必要があります。

最も単純なケースでは、<service-ref-mapping>要素にデプロイメント情報のみを指定します。クライアントをマネージド・クライアントとして使用しない場合は、ランタイム要素つまりサービスのクオリティ要素を追加しないでください。マネージド・クライアントは、パフォーマンスの点で高負荷です。

例14-4には、固有のデプロイメント・ディスクリプタで使用できる<service-ref-mapping>のサンプルが含まれます。この要素の階層がわかるように、サブ要素をすべて表示しています。このXMLサンプルの後に、サブ要素について説明した表が続きます。

例14-4    サンプルの<service-ref-mapping>セグメント

...
<service-ref-mapping name="service/MyJAXRPCTime">
  <service-impl-class>oracle.demo.MyTime_Impl</service-impl-class>
  <wsdl-file final-location="file:/myhome/mytime/client-wsdl/MyJAXRPCTime.wsdl">
  <wsdl-location wsdl-override-last-modified=19NOV>
  <service-qname namespaceURI="urn:oracle-ws" localpart="MyService" />
  <stub-property>
   <name>...</name>
   <value>...</value>
  </stub-property>
  <call-property>
     <name>javax.xml.rpc.service.endpoint.address</name>
     <value>http://myhost:8888/time-ejb/timeport</value>
  </call-property>
  <port-info>
    <wsdl-port>
    <service-endpoint-interface>time.TimeService</service-endpoint-interface>
    <stub-property>
      <name>another.endpoint.address</name>
      <value>http://anotherhost:8888/time-ejb/timeport</value>
    </stub-property>
    <call-property>
      <name>...</name>
      <value>...</value>
    </call-property>
    <runtime>...</runtime>
    <operations>
      <operation name="echo">
         <runtime>
           <auditing request="true" response="false" fault="false"/>
           <reliability><reject-non-reliable-messages value="false"/></reliability>
           ...
         </runtime>
     </operation>
   </operations>
  </port-info>
</service-ref-mapping>
...

表14-2は、<service-ref-mapping>のサブ要素の説明です。

表14-2    <service-ref-mapping>要素のサブ要素 
要素名  説明 

<call-property> 

すべてのポートに適用可能な、コールのプロパティ値を定義します。これは、ポート名を指定せずにプロパティを指定できる便利な方法です。<call-property>nameおよびvalueサブ要素の詳細は、表14-6を参照してください。

<port-info>要素内にさらに<call-property>要素を含めることができる点に注意してください。特定のポートに対して、<port-info>タグ内でコールのプロパティ値を指定する場合は、ここで設定する値がオーバーライドされます。  

<port-info> 

サービス参照のポートを定義します。<port-info>のサブ要素の詳細は、表14-3を参照してください。 

<service-impl-class> 

Service実装の、デプロイ時生成名を定義します。 

<service-qname> 

この要素はデプロイ時に導出され、WebサービスのQNameを格納します。 

<stub-property> 

すべてのポートに適用可能な、スタブのプロパティ値を定義します。これは、ポート名を指定せずにプロパティを指定できる便利な方法です。<stub-property>nameおよびvalueサブ要素の詳細は、表14-6を参照してください。

<stub-property>要素を<port-info>要素内で指定できる点にも注意してください。特定のポートに対して、<port-info>タグ内でスタブのプロパティ値を指定する場合は、ここで設定する値がオーバーライドされます。  

<wsdl-file> 

WSDLファイルのデプロイ時生成名を定義します。この要素には、次の属性があります。

  • final-location: 標準のデプロイメント・ディスクリプタのservice-refに指定されているWSDLドキュメントのコピーを指します。

 

<wsdl-location> 

(オプション)WSDLドキュメントを指す有効なURLを指定します。URLを指定すると、デプロイ時にこのURLのWSDLドキュメントを、標準のデプロイメント・ディスクリプタでservice-refに指定されたWSDLドキュメントのかわりに使用します。<wsdl-location>のサンプル値としては、http://hostname:port/myservice/myport?WSDLおよびfile:/home/user1/myfinalwsdl.wsdlがあげられます。

この要素には、次の属性があります。

  • wsdl-override-last-modified: このオプションの文字列値は、デプロイ時に生成され、WSDLファイルが最後に変更された時間を表します。

 

表14-3は、<port-info>要素のサブ要素の説明です。この要素は、サービス参照のポートの詳細を提供します。コンテナがコンテナ管理ポートの選択で使用するポートを、<service-endpoint-interface>または<wsdl-port>に指定します。両方を指定すると、<wsdl-port>の値が使用されます。<wsdl-port><service-endpoint-interface>を指定しない場合は、<port-info>プロパティの値が、すべての使用可能なポートに対して適用されます。

また、<port-info>要素には、ポートおよびその操作に対して、使用可能なサービスのクオリティ機能を指定できるサブ要素も含めることができます。

表14-3    <port-info>要素のサブ要素 
要素名  説明 

<call-property> 

<port-info>要素に定義するポートに適用されるコール・プロパティ値を定義します。<call-property>nameおよびvalueサブ要素の詳細は、表14-6を参照してください。

<service-ref-mapping>要素内にさらに<call-property>サブ要素を含めることができる点に注意してください(表14-2を参照)。特定のポートに対して、<port-info>タグ内でコールのプロパティ値を指定する場合は、<service-ref-mapping>に設定する<call-property>要素の値がオーバーライドされます。  

<operations> 

操作ごとに要素を1つずつ指定した、一連の要素を指定します。個々の操作は、<operation>サブ要素に指定します。これらの各サブ要素には、参照先のWebサービスにより提供される各操作に対する、クライアント・サイドのサービスのクオリティ構成を指定します。<operations>のサブ要素の詳細は、表14-4を参照してください。 

<runtime> 

参照先のWebサービスにより提供されるすべての操作に適用されるクライアント・サイドの、サービスのクオリティのランタイム情報(セキュリティまたは信頼性(あるいはその両方))を指定します。各機能の構成は、それぞれの子要素に指定します。 

<service-endpoint-interface> 

WSDLポートのサービス・エンドポイント・インタフェースの完全修飾パスを指定します。コンテナは、このポートをコンテナ管理ポートの選択に使用します。 

<stub-property> 

<port-info>要素に定義するポートに適用されるスタブ・プロパティ値を定義します。<stub-property>nameおよびvalueサブ要素の詳細は、表14-6を参照してください。

<service-ref-mapping>要素内にさらに<stub-property>サブ要素を含めることができる点に注意してください(表14-2を参照)。特定のポートに対して、<port-info>タグ内でスタブのプロパティ値を指定する場合は、<service-ref-mapping>に設定する<stub-property>要素の値がオーバーライドされます。  

<wsdl-port> 

コンテナによりコンテナ管理ポートの選択に使用されるWSDL内ポート名を指定します。

コンテナ管理ポートの選択では、コンテナがインスタンスのコールを直接管理し、クライアントは、複数の異なるインスタンスへのアクセスに使用できる汎用ポートをリクエストします。この要素には、次の属性があります。

  • localpart: WSDL名のローカル部分です。たとえば、authenticateHeaderなどです。

  • namespaceURI: WSDLの名前空間のURIです。たとえば、http://oracle.j2ee.ws/Headerなどです。

 

表14-4は、<operations>要素の<operation>サブ要素の説明です。

表14-4    <operations>要素のサブ要素 
要素名  説明 

<operation> 

参照先のWebサービスにより提供される特定の操作に対する、クライアント・サイドのサービスのクオリティ構成を指定します。この構成の指定は、この要素の<runtime>サブ要素で行います。<runtime>サブ要素の詳細は、表14-5を参照してください。

この<operation>要素には、次の属性があります。

  • inputName: WSDL内の操作の入力名を指定します。これは、name属性を使用して操作を一意に特定できない場合にのみ必要です。

  • name: 指定しているサービスのクオリティ構成を、この操作に関連付けます。属性の値は、WSDL内の操作名と一致させる必要があります。

  • outputName: WSDL内の操作の出力名を指定します。これは、nameおよびinput属性を使用して、操作を一意に特定できない場合にのみ必要です。

 

表14-5は、<operation>要素の<runtime>サブ要素の説明です。

表14-5    <operation>要素のサブ要素 
要素名  説明 

<runtime> 

ポート内の個々の操作に対する、クライアント・サイドのサービスのクオリティ構成を指定します。サービスのクオリティ機能(セキュリティ、信頼性または監査(あるいはこれらの任意の組合せ))の各構成は、それぞれの子要素に指定します。 

表14-6は、<stub-property>および<call-property>要素の、nameおよびvalueサブ要素の説明です。

表14-6    <stub-property>および<call-property>要素のサブ要素 
要素名  説明 

<name> 

JAX-RPC CallまたはStub実装でサポートされている任意のプロパティの名前を定義します。javax.xml.rpc.Callおよびjavax.xml.rpc.Stubの有効なプロパティについては、Javadocツールの出力を参照してください。 

<value> 

CallオブジェクトまたはStubオブジェクトをWebサービス・クライアントに戻す前にそのオブジェクトに設定するJAX-RPCプロパティ値を定義します。 

メッセージ処理用JAX-RPCハンドラのデプロイメント・ディスクリプタへの追加方法

J2EE Webサービス・クライアントは、JAX-RPCハンドラを使用することで、Webサービス・エンドポイントに関する追加のメッセージ処理機能を実現できます。たとえば、ハンドラを使用してSOAPメッセージを処理できます。

ハンドラ情報は、J2EE Webサービス・クライアントのデプロイメント・ディスクリプタ内で、<service-ref>のサブ要素として入力する必要があります。<handler>要素にハンドラ情報をカプセル化します。

関連項目

クライアント・サイド・ハンドラ、およびそのデプロイメント・ディスクリプタへの登録方法の詳細は、「クライアント・サイドのJAX-RPCハンドラ」を参照してください。 

J2EE Webサービスのクライアント・コードの記述

この項の内容は、次のとおりです。

J2EE Webサービス・クライアントの記述手順

この項では、J2EEコンポーネントがWebサービスにアクセスできるようにする共通コードのいくつかについて説明します。実行時には、すべてのJ2EE Webサービス・クライアントが標準JNDIルックアップを使用し、Webサービスを検索します。次に、サーブレット、EJBまたはJSPで使用できるようにJNDIルックアップをコーディングする際の一般的な手順を示します。

  1. 初期JNDIコンテキストの作成

    Context ic = new InitialContext();
    

    OC4Jコンテナにより、初期コンテキストのプロパティが設定されます。

  2. 初期コンテキストからlookupメソッドを使用し、サービスを検索します。例14-5では、comp/env/service/MyHelloServiceRefを使用してサービス参照を戻しています。このJNDIコールにより、serviceオブジェクトへの参照が戻されます。

    Service service = (Service) ic.lookup("java:comp/env/service/MyHelloServiceRef");
    

    クライアントは、常にJNDIルックアップを使用してサービス実装にアクセスします。このルックアップにより、コンテナ管理のサービス参照が戻されます。これにより、コンテナは、クライアントに介入し、ロギング、セキュリティおよび管理などの追加サービス機能をクライアントに提供できます。

  3. コンテナ管理サービス・オブジェクトに対してgetPortメソッドを使用し、サービス・ポートのハンドルを取得します。戻り値をインタフェース・タイプにキャストします。

    HelloInterface helloPort = (HelloInterface) service.getPort(portQName, 
    oracle.demo.hello.HelloInterface.class);
    

    このステップはQNameが定義済であることが前提ですので、注意してください。次に例を示します。

    QName portQName = new QName("http://hello.demo.oracle/", "HelloInterfacePort");
    

    クライアントは、getPortのかわりにserviceオブジェクトを使用し、Callオブジェクトのハンドルを取得して、DIIによってWebサービスをコールすることもできます。

    Call call = service.createCall(new QName("http://hello.demo.oracle/", 
    "HelloInterfacePort");
    
  4. リモート・オブジェクトのメソッドをコールします。

    resultFromService = helloPort.sayHello(name);
    

例14-5は、サーブレットまたはJSPのWebサービス・クライアントがWebサービスをルックアップするためのコードの例を示しています。

例14-5    Webサービスをルックアップするサーブレット/JSPのコード

public String consumeService (String name)
{
   ......
   Context ic = new InitialContext();
   Service service = (Service)ic.lookup("java:comp/env/service/MyHelloServiceRef");
   // declare the qualified name of the port, as specified in the wsdl
   QName portQName= new QName("http://hello.demo.oracle/","HelloInterfacePort");
   //get a handle on that port : Service.getPort(portQName,SEI class)
   HelloInterface helloPort =
(HelloInterface) service.getPort(portQName,oracle.demo.hello.HelloInterface.class);
   //invoke the operation : sayHello()
   resultFromService = helloPort.sayHello(name);
   .....
} 

ステートフルWebサービス用J2EE Webサービス・クライアントの構成方法

J2EE Webサービス・クライアントは、構成ファイルまたはプログラムを使用して、ステートフルWebサービスを使用するように構成できます。

デプロイメント・ディスクリプタ・ファイルを使用したJ2EEクライアントの構成方法

ステートフルWebサービスを使用するようにJ2EEクライアントを構成するには、適切なOracle固有デプロイメント・ディスクリプタ(orion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xml)の<service-ref-mapping>句を編集します。

<service-ref-mapping>句に<stub-property>要素を追加します。具体的には、その<name>サブ要素にjavax.xml.rpc.session.maintainプロパティを設定し、<value>サブ要素にtrueを指定します。

J2EE標準プロパティjavax.xml.rpc.session.maintainの値を使用して、特定のサービス・エンドポイントでクライアントがセッションに参加するかどうかを設定します。このプロパティをtrueに設定することは、クライアントにセッションを持たせることを意味します。

例14-6は、ステートフルWebサービス用のWebサービス・クライアント構成を示します。<stub-property>の定義では、クライアントが、CycleCounterInterfaceサービス・エンドポイントで特定されるポートでセッションに参加できるようになっています。<stub-property>要素とその設定であるjavax.xml.rpc.session.maintainを、太字で強調してあります。

例14-6    ステートフルWebサービスに参加するクライアントの構成

     <service-ref-mapping name="service/CycleCounter">
         <port-info>
                
<service-endpoint-interface>test.oracle.stateful.CycleCounterInterface</service-endpoin
t-interface>
          <!-- set the javax.xml.rpc.session.maintain property to true for a stateful 
client -->
                <stub-property>
                     <name>javax.xml.rpc.session.maintain</name>
                     <value>true</value>
                </stub-property>
                <stub-property>
                     <name>javax.xml.rpc.service.endpoint.address</name>
                     
<value>http://%J2EE_HOST%:%HTTP_PORT%/testsfWS-session/testsfWS-session</value>
                 </stub-property>
          </port-info>
     </service-ref-mapping>

プログラムによるJ2EEクライアントの構成方法

J2EEクライアントをプログラムで構成し、ステートフルWebサービスを使用できます。このような構成を行うには、スタブ、DIIコールまたはエンドポイント・クライアント・インスタンスにおいて、SESSION_MAINTAIN_PROPERTYランタイム・プロパティ(javax.xml.rpc.session.maintain)をtrueに設定して、クライアントがセッションに参加できるようにします。

たとえば、このプロパティの値を、javax.xml.rpc.Stubの生成される実装_port内で設定できます。

((Stub)__port)._setProperty(Stub.SESSION_MAINTAIN_PROPERTY, Boolean.valueOf 
(maintainSession));

このプロパティを直接設定するかわりに、OracleAS Web Servicesに用意されている、setMaintainSession(boolean)メソッドがあるラッパー・クラスを使用することもできます。このメソッドをtrueに設定すると、セッションが持たれます。このようなプロパティの設定は、クライアント内でラッパーによって行います。たとえば、クライアント・コードに次のように入力します。

HttpSoap11Client c = new HttpSoap11Client(); // client wrapper class
c.setMaintainSession(true);

JMSトランスポート・コール用のJ2EE Webサービス・クライアントの構成方法

J2EEクライアントを静的に構成し、JMSトランスポート・コールを実行できます。このような構成を行うには、Webサービス用の適切なOracle固有J2EEクライアント用デプロイメント・ディスクリプタ・ファイル(orion-web.xmlorion-ejb-jar.xmlまたはorion-application-client.xml)に、<service-ref-mapping>句を追加します。この句の中で、次の各アイテムに対して、<stub-property>要素をnameおよびvalue属性によって構成します。

例14-7は、サンプルの構成を示します。

例14-7    JMSトランスポート・コール用のJ2EEクライアント構成

<service-ref-mapping name="service/MyJMSService">
     <stub-property>
        <name>oracle.webservices.transport.ReplyToQueueName</name>
        <value>jms/receiverQueue</value>
     </stub-property>
     <stub-property>
        <name>oracle.webservices.transport.ReplyToFactoryName</name> 
        <value>jms/receiverQueueConnectionFactory</value>
     </stub-property>
     <stub-property>
        <name>javax.xml.rpc.service.endpoint.address</name>
        <value>/bank/soap12bank</value>
     </stub-property>
</service-ref-mapping>

HTTP 1.1向けのチャンク・データ転送の有効化方法

プロトコルがHTTP 1.1の場合、OracleAS Web Servicesでは、メッセージのチャンク転送エンコーディングが可能です。チャンク・データ転送は、J2SEスタブ、J2EEスタブおよびDII Webサービス・クライアントから起動できます。

チャンクを使用すると、ペイロードが小さなピースに分割されるので、パフォーマンスが向上します。これらのピースは、ケーブル中を、大きなペイロードよりも高速に送信できます。チャンク転送エンコーディングには、受信者が、自分がメッセージ全体を受信できたかどうかを確認するために必要なすべての情報が含まれます。チャンク転送エンコーディングは、トランスポート・レベルで実行されるため、Webサービス・コールの起動元またはサーバーによって検出および処理されることはありません。

チャンクの有効化およびチャンク・サイズの設定を行うには、oracle.webservices.ClientConstantsクラスの次のプロパティを、StubまたはCallオブジェクトに設定します。

例14-8は、クライアント・プロキシ・スタブ・コード内でのチャンクの設定およびチャンク・サイズのプロパティの設定を示しています。

例14-8    データのチャンク・サイズを設定するスタブ・コード

import oracle.webservices.ClientConstants;
...
((OracleStub)port)._setProperty(ClientConstants.DO_NOT_CHUNK, true);
((OracleStub)port)._setProperty(ClientConstants.CHUNK_SIZE, 1024);
...

例14-9は、DIIクライアント・コード内でDO_NOT_CHUNKおよびCHUNK_SIZEプロパティを使用してチャンク・サイズを1024バイトに設定するための方法を示しています。

例14-9    データのチャンク・サイズを設定するDIIクライアント・コード

import oracle.webservices.ClientConstants;
...
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new 
QName("http://whitemesa.net/wsdl/rpc-lit-test", "tns" ) );
QName stringType = new QName( "http://www.w3.org/2001/XMLSchema", "string");
Call call = service.createCall();
...
call.setProperty(ClientConstants.DO_NOT_CHUNK, false);
call.setProperty(ClientConstants.CHUNK_SIZE, 1024);
...

SOAPメッセージの文字コードの設定方法

デフォルトでは、OracleAS Web ServicesでアセンブルされたJ2EEクライアント(静的スタブまたはDII)は、UTF-8でエンコードされたSOAPエンベロープを持つリクエスト・メッセージを送信します。この動作をオーバーライドする場合は、次のOracle固有のプロパティを設定します。

oracle.webservices.ClientConstants.CHARACTER_SET_ENCODING

このプロパティは、javax.xml.rpc.Stubまたはjavax.xml.rpc.Callオブジェクトに対して、setPropertyメソッドを使用して適用できます。

CHARACTER_SET_ENCODINGプロパティの値は、java.lang.Stringまたはjava.nio.charset.Charset型のいずれかを使用できます。サポートされる文字コード・セットは、背後で動作するJava Virtual Machine(JVM)に依存します。JVMでサポートされる文字コードのリストを取得するには、Charset.availableCharsetsメソッドを使用します。Charset.availableCharsetsメソッドの詳細は、java.nio.charset.CharsetクラスのJavadocツール出力を参照してください。

また、このプロパティは、J2SE Webサービス・クライアント用にも使用できます。

例14-10は、SOAPエンベロープで使用する文字コードとしてShift_JISを設定したスタブ・クライアント・コードを示します。

例14-10    スタブ・クライアントにおける、SOAPエンベロープに対する文字コードShift_JISの設定

import oracle.webservices.ClientConstants;
...
((OracleStub)port)._setProperty(ClientConstants.CHARACTER_SET_ENCODING, "Shift_JIS");
...

例14-11は、SOAPエンベロープで使用する文字コードとしてShift_JISを設定したDIIクライアント・コードを示します。

例14-11    DIIクライアントにおける、SOAPエンベロープに対する文字コードShift_JISの設定

import oracle.webservices.ClientConstants;
...
ServiceFactory factory = ServiceFactory.newInstance();
Service service = factory.createService(new URL("path to wsdl"),
new QName("service namespace", "service name" ) );
Call call = service.createCall();
call.setProperty(ClientConstants.CHARACTER_SET_ENCODING, Charset.forName("Shift_JIS"));
...

J2EEクライアントのパッケージ構造の概要

Oracle JDeveloperは、WebアプリケーションおよびEJBクライアント・ファイルに対して標準パッケージ構造を作成します。この項では、クライアントEARファイルのコンテンツのカスタマイズが必要な場合のために、この構造を説明します。

サーブレットまたはWebアプリケーション・クライアントのパッケージ構造の概要

この項では、サーブレットまたはWebアプリケーション・クライアントのパッケージ化について説明します。デプロイメント・ディスクリプタ内のいくつかの要素の値には、EARファイル内でのファイル名および格納位置が反映されます。EARファイルの内容を変更した場合は、デプロイメント・ディスクリプタの内容の変更が必要になります。

サーブレットまたはWebアプリケーション・クライアントのパッケージの構造

サーブレットまたはWebアプリケーション・クライアントは、<ear_file_name>.earという名前のEARファイルにパッケージ化されます。EARファイルでは、トップレベルにマニフェスト・ファイルおよびapplication.xmlファイルのためのMETA-INFディレクトリ、サーブレットまたはWebアプリケーション・ファイル、JAX-RPCマッピング・ファイル、WSDLファイルおよびデプロイメント・ディスクリプタのための<war_file_name>.warファイルがあります。例14-12は、EARファイルの標準パッケージの構造を示します。

例14-12    サーブレットまたはWebアプリケーション・クライアントのEARファイルの構造

./META-INF
    ./MANIFEST.MF
    ./application.xml
./<war file>.war
    ./WEB-INF/
            /orion-web.xml
            /web.xml
            /wsdl/<wsdl file name>.wsdl
            /<mapping file>.xml   
            /classes
                 /class files
            /lib
                 /.jar files
    ./*.jsp or html files

サーブレット用またはWebアプリケーション・クライアント用のデプロイメント・ディスクリプタ間の関係

この項では、J2EE標準デプロイメント・ディスクリプタweb.xml、サーブレットまたはWebアプリケーションのためのOC4Jデプロイメント・ディスクリプタorion-web.xml、およびクライアントEARファイルのパッケージの構造の間の関係について説明します。クライアントEARファイルの構造または内容を編集すると、デプロイメント・ディスクリプタの内容も編集が必要になるため、これらの関係は重要です。

クライアント情報は、web.xml<service-ref>要素に指定します。この要素には、サーブレットまたはJSPの内部からルックアップおよび使用できるWebサービスの情報を指定します。たとえば、次のものの位置を指定します。WSDL(<wsdl-file>)、JAX-RPCマッピング・ファイル(<jaxrpc-mapping-file>)、JNDIルックアップで使用するサービス・インタフェース(<service-ref-name>)、サービス・インタフェース・クラス(<service-interface>)およびサービス・エンドポイント・インタフェース(<service-endpoint-interface>)。web.xml<service-ref-name>は、orion-web.xml<service-ref-mapping>要素の属性としても指定される点に注意してください。EARの前述したアイテムの名前および位置を変更する場合は、デプロイメント・ディスクリプタも対応するように変更する必要があります。

関連項目

<service-ref>要素および<service-ref-mapping>要素とそれぞれのサブ要素については、「J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法」を参照してください。 

例14-13は、サーブレットまたはWebアプリケーション・クライアントのためのweb.xmlの内容を示しています。<service-ref>要素を太字で強調してあります。

例14-13    サーブレットまたはWebアプリケーション・クライアントのためのweb.xmlの内容

<web-app>
  <servlet>
    <servlet-name>consumer</servlet-name>
    <servlet-class>oracle.ServiceConsumerServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>consumer</servlet-name>
    <url-pattern>/consumer</url-pattern>
  </servlet-mapping>
  <service-ref>
    <service-ref-name>service/MyHelloServiceRef</service-ref-name>
    <service-interface>javax.xml.rpc.Service</service-interface>
    <wsdl-file>WEB-INF/wsdl/HelloService.wsdl</wsdl-file>
 <jaxrpc-mapping-file>WEB-INF/HelloService-java-wsdl-mapping.xml</jaxrpc-mapping-file>
    <service-qname
xmlns:service-qname_ns__="http://hello.demo.oracle/">service-qname_ns__:HelloService</s
ervice-qname>
        <port-component-ref>
 
<service-endpoint-interface>oracle.demo.hello.HelloInterface</service-endpoint-interfac
e>
        </port-component-ref>
  </service-ref>
</web-app>

例14-14は、Webアプリケーションおよびサーブレットのための、OC4J固有のorion-web.xmlデプロイメント・ディスクリプタの内容を示しています。<service-ref-mapping>要素を太字で強調してあります。

例14-14    クライアント・サイドのサーブレットまたはWebアプリケーションのためのorion-web.xmlの内容

<orion-web-app
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 
xsi:noNamespaceSchemaLocation="http://xmlns.oracle.com/oracleas/schema/orion-web-10_0.x
sd">
        <service-ref-mapping name="service/MyHelloServiceRef">
                        <!-- stub property applicable across all ports -->
                        <stub-property>
 
<name>javax.xml.rpc.service.endpoint.address</name>
 
<value>http://localhost:8888/hello/HelloService</value>
                        </stub-property>
        </service-ref-mapping>
</orion-web-app>

EJBクライアントのパッケージ構造の概要

この項では、EJBクライアントのパッケージ化について説明します。デプロイメント・ディスクリプタ内のいくつかの要素の値には、EARファイル内でのファイル名および格納位置が反映されます。EARファイルの内容を変更した場合は、デプロイメント・ディスクリプタの内容の変更が必要になります。

EJBアプリケーション・クライアント用のパッケージの構造

EJBクライアントは、<ear_file_name>.earという名前のEARファイルにパッケージ化されます。EARファイルでは、トップレベルにマニフェスト・ファイルおよびapplication.xmlファイルのためのMETA-INFディレクトリ、EJBクラス・ファイル、および<ejb_jar_file_name>.jarファイルがあります。JARファイルには、JARマニフェスト・ファイル、JAX-RPCマッピング・ファイル、WSDLファイルおよびデプロイメント・ディスクリプタがあります。例14-15に、EJBクライアントのEARファイルのパッケージの構造を示します。

例14-15    クライアント・サイドEJBアプリケーションのEARファイルのパッケージの構造

./META-INF
     ./MANIFEST.MF
     ./application.xml
./<ejb jar file name>.jar
     ./class files
     ./META-INF/
          /MANIFEST.MF   
          /ejb-jar.xml
          /orion-ejb-jar.xml  
          /wsdl/<wsdl file name>.wsdl  
          /<mapping file>.xml 

EJBアプリケーション・クライアント用のデプロイメント・ディスクリプタ間の関係

この項では、J2EE標準デプロイメント・ディスクリプタejb-jar.xml、サーブレットまたはWebアプリケーションのためのOC4Jデプロイメント・ディスクリプタorion-ejb-jar.xml、およびEJBクライアントEARファイルのパッケージの構造の間の関係について説明します。クライアントEARファイルの構造または内容を編集すると、デプロイメント・ディスクリプタの内容も編集が必要になるため、これらの関係は重要です。

クライアント情報は、ejb-jar.xml<service-ref>要素に指定します。この要素には、Webサービス・クライアントとして使用できるサーブレットまたはWebアプリケーションの情報を指定します。たとえば、次のものの位置を指定します。WSDL(<wsdl-file>)、JAX-RPCマッピング・ファイル(<jaxrpc-mapping-file>)、JNDIルックアップで使用するサービス・インタフェース(<service-ref-name>)、サービス・インタフェース・クラス(<service-interface>)およびサービス・エンドポイント・インタフェース(<service-endpoint-interface>)。ejb-jar.xml<service-ref-name>は、orion-ejb-jar.xml<service-ref-mapping>要素の属性としても指定される点に注意してください。EARの前述したアイテムの名前および位置を変更する場合は、デプロイメント・ディスクリプタも対応するように変更する必要があります。

関連項目

<service-ref>要素および<service-ref-mapping>要素とそれぞれのサブ要素については、「J2EE Webサービス・クライアント情報のデプロイメント・ディスクリプタへの追加方法」を参照してください。 

例14-16は、EJBクライアント用のejb-jar.xmlの内容を示しています。<service-ref>要素を太字で強調してあります。

例14-16    クライアント・サイドEJBアプリケーション用のejb-jar.xmlの内容

<ejb-jar>
  <display-name>serviceConsumerEJB</display-name>
  <enterprise-beans>
    <session>
        <ejb-name>ServiceConsumer</ejb-name>
        <home>oracle.ServiceConsumerHome</home>
        <remote>oracle.ServiceConsumerRemote</remote>
        <ejb-class>oracle.ServiceConsumerBean</ejb-class>
        <session-type>Stateless</session-type>
        <transaction-type>Container</transaction-type>
        <service-ref>
                <service-ref-name>service/MyHelloService</service-ref-name>
                <service-interface>javax.xml.rpc.Service</service-interface>
                <wsdl-file>META-INF/wsdl/HelloService.wsdl</wsdl-file>
 
<jaxrpc-mapping-file>META-INF/HelloService-java-wsdl-mapping.xml</jaxrpc-mapping-file>
                
<service-qnamexmlns:ns="http://hello.demo.oracle/">ns:HelloService</service-qname>
                <port-component-ref>
 
<service-endpoint-interface>oracle.demo.hello.HelloInterface</service-endpoint-interfac
e>
                </port-component-ref>
        </service-ref>
    </session>
  </enterprise-beans>
</ejb-jar>

例14-17は、Webアプリケーションおよびサーブレットのための、OC4J固有のorion-ejb-jar.xmlデプロイメント・ディスクリプタの内容を示しています。<service-ref-mapping>要素を太字で強調してあります。

例14-17    クライアント・サイドEJBアプリケーション用のorion-ejb-jar.xmlの内容

<orion-ejb-jar>
    <enterprise-beans>
        <session-deployment name="ServiceConsumer">
            <service-ref-mapping name="service/MyHelloService">
                <stub-property>
                    <name>javax.xml.rpc.service.endpoint.address</name>
                    <value>http://localhost:8888/hello/HelloService</value>
                </stub-property>
            </service-ref-mapping>
        </session-deployment>
    </enterprise-beans>
</orion-ejb-jar>

制限事項

「J2EE Webサービス・クライアントのアセンブル」を参照してください。

追加情報

詳細は、次を参照してください。


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

All Rights Reserved.
目次
目次
索引
索引