ヘッダーをスキップ

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

B31868-01
目次
目次
索引
索引

戻る 次へ

18 WebServicesAssemblerの使用方法

この章では、WebServicesAssemblerツールに備わっている機能について説明します。

WebServicesAssemblerツールの概要

WebServicesAssemblerツールを使用すると、Oracle Application Server Web Servicesをアセンブルできます。WebServicesAssemblerツールを使用すると、トップダウン方式とボトムアップ方式のどちらでWebサービスを作成するかにかかわらず、サービスの開発およびデプロイに必要なアーチファクトを生成できます。また、WebServicesAssemblerは、WSDLをベースにしたWebサービス・クライアント・オブジェクトの作成用に呼び出すこともできます。

トップダウン方式でのWebサービスの生成のサポート

トップダウン方式の場合は、WebServicesAssemblerにWSDLを提供し、これによりサービス・エンドポイント・インタフェースを作成します。次に、Javaクラスなどの必要なアーキテクチャ用のサービスを実装していきます。

関連項目

WebServicesAssemblerを使用したトップダウン方式のWebサービス・アセンブリの例は、第6章「WSDLからのWebサービスのアセンブル」を参照してください。 

ボトムアップ方式でのWebサービスの生成のサポート

ボトムアップ方式の場合は、既存のビジネス・ロジックをベースにします。これには、Javaクラス、Enterprise JavaBeans(EJB)、CORBAオブジェクト、JMSキュー、またはPL/SQLプロシージャなどのデータベース・アーチファクトなどがあります。WebServicesAssemblerは、これらのアーチファクトを使用して、WSDL、マッピング・ファイルおよび必要なデプロイメント・ディスクリプタをアセンブルします。

関連項目

WebServicesAssemblerを使用したボトムアップ方式でのWebサービスのアセンブリの例は、次の各章を参照してください。

 

XMLスキーマ・ベースのWebサービスの生成のサポート

スキーマ・ベースの場合は、XMLスキーマをベースにしてJaveBeanを生成します。JaveBeanが生成された後、Beanを引数として使用するインタフェースを記述し、ボトムアップ方式でWSDL、マッピング・ファイルおよびデプロイメント・ディスクリプタを生成します。

JAX-BまたはToplinkを使用してXMLスキーマからBeanを生成することもできますが、WebServicesAssemblerまたはAntタスクを使用することもできます。

関連資料

AntタスクまたはWebServicesAssemblerを使用してスキーマからWebサービスを生成する方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「スキーマ・ドリブン方式のWebサービス開発におけるカスタム・シリアライズの使用」を参照してください。 

デプロイのサポート

OC4Jコンテナではデプロイを処理しますが、WebServicesAssemblerツールでは、確実に、生成されるアプリケーション・アーカイブが適切にデプロイ用に準備されるようにします。WebServicesAssemblerでは、すべての関連デプロイメント・ディスクリプタの生成が処理され、アプリケーションによって必要とされる固有の構成がOracle固有のデプロイ・ファイルにマップされます。JavaクラスまたはEJB 2.1をベースにしたアプリケーションは、様々なコンテナにデプロイ可能です。このようなWebサービスはJ2EE標準のデプロイ可能形式であり、業界標準であるJAX-RPC、Enterprise Web Services 1.1、Web Services-Interoperability(WS-I)などの仕様に準拠しています。

コマンドラインからの起動とAntタスクのサポート

WebServicesAssemblerツールは、コマンドラインで、またはAntタスクによって起動できます。WebServicesAssemblerを使用することで、Webサービスのアセンブル方法の選択が拡がります。アセンブリ・プロセスをいくつかのステップに分割し、Webサービスの作成方法をより綿密に制御できます。たとえば、次のタスクを実行できます。

コマンドライン構文

WebServicesAssemblerツールでは、いくつかのコマンドがサポートされています。WebServicesAssemblerを起動する際、コマンドライン上に指定できるコマンドは1つのみです。

一般的なコマンドラインの構文は次のとおりです。

java -jar [OC4J_HOME]/webservices/lib/wsa.jar -[command] -[argument name][argument 
value]... 

この例において、OC4J_HOMEはOC4Jがインストールされた場所で、wsa.jarはWebServicesAssembler JARファイルの名前です。コマンドラインの構文規則は次のとおりです。

WebServicesAssemblerに向けたAntの設定

AntタスクからWebServicesAssemblerコマンドをコールするには、Antのインストールに若干の変更や追加が必要なことがあります。

関連項目

Antタスクをコールするために必要な変更および追加の詳細は、「WebServicesAssembler用のAntの設定方法」を参照してください。 

WebServicesAssemblerコマンド

この項では、WebServicesAssemblerツールで使用可能なコマンドについて説明します。コマンドは、備えている機能別に次の各カテゴリに分類されます。

Webサービス・アセンブリ・コマンド

Webサービスのアセンブルに使用できるコマンドは、次のとおりです。

これらのコマンドに共通の機能と動作は、次のとおりです。

図18-1に、*Assembleコマンドによって作成されるステージング・ディレクトリ構造を示します。各コマンドにより、指定された出力ディレクトリの下に、earsrcおよびwarの3つのサブディレクトリが作成されます。

aqAssemble

aqAssembleコマンドは、データベースのアドバンスト・キューからWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。

aqAssembleコマンドでは、アドバンスト・キュー用WSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。

関連資料

  • aqAssembleコマンドを使用してアドバンスト・キューをWebサービスとして公開する方法の詳細は、「Oracle Streams AQからWebサービスをアセンブルする方法」を参照してください。

  • データベースに接続できる引数の詳細は、「データベース接続の確立方法」を参照してください。

  • データベース・リソース用のバインディングのWSDLへの追加については、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「データベース・リソースへのWSIFエンドポイントの構成」を参照してください。

 

コマンドラインの例:
java -jar wsa.jar -aqAssemble 
                  -dbUser scott/tiger
                  -sql ToyQueue 
                  -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj 
                  -dataSource jdbc/OracleManagedDS
                  -appName query
Antタスクの例:
<oracle:aqAssemble
     dbUser="scott/tiger"
     sql="ToyQueue"
     dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj"
     dataSource="jdbc/OracleManagedDS"
     appName="query"
/>
必須引数:

aqAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、aqAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

assemble

assembleコマンドは、Webサービスをボトムアップ方式で生成する場合に使用します。このコマンドにより、デプロイ可能なアーカイブを作成するために必要なすべてのファイルが作成されます。このようなファイルには、固有のデプロイメント・ディスクリプタoracle-webservices.xmlがあります。このコマンドは、トランスポート・メカニズムがHTTPまたはJMSのどちらでも、ステートレスWebサービスを生成できます。

Java実装クラスを検索するには、inputまたはclasspath引数を指定する必要があります。これらの引数のいずれかを指定した場合は、クラスパス内に含まれるクラスがサーバー上に実際にあるかどうかを確認してください。クラスパスの内容はアーカイブにコピーされないためです。

WSIFバインディングのWSDLへのアセンブル

assembleコマンドでは、Webサービスを生成する以外に、WSDLへのWSIFバインディングの追加も行えます。JavaクラスをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifJavaBinding引数を使用します。また、className引数にJavaクラスを指定する必要もあります。

関連資料

  • 詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数のJavaポートに対するWSIFエンドポイントの構成」を参照してください。

  • WSIFの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「Webサービス起動フレームワークの使用方法」を参照してください。

 

J2SE 5.0注釈付きWebサービスのアセンブル

assembleコマンドを使用してJ2SE 5.0注釈を含むJavaクラスからWebサービスをアセンブルする場合は、className引数を使用して実装クラスを指定します。@WebService注釈がクラス宣言に存在する必要があります。

J2SE 5.0注釈にはクラス名が必要です。注釈がインタフェースと実装クラスのいずれかに付けられる可能性があるためです。注釈がインタフェースのみに付けられている場合は、WebServicesAssemblerは、インタフェースが参照する実装クラスを介して注釈を取得できます。実装クラスにも注釈が付いている場合は、この注釈がWebServicesAssemblerによって処理されます。

次の例では、J2SE 5.0注釈が付いているJavaクラスからWebサービスを生成するためにassembleコマンドが使用されています。className引数には、com.mycompany.HelloImplクラスが指定されています。

java -jar wsa.jar assemble -appName myService -className com.mycompany.HelloImpl  
-output wsdl 

WebServicesAssemblerにインタフェースの注釈のみを処理させる場合は、serviceEndpointInterfaceプロパティ付きの@WebService注釈を実装クラス・ファイルに入力します。J2SE 5.0注釈では、残りすべての注釈もこのサービス・エンドポイント・インタフェース・クラスに付けられているものと予期します。たとえば、実装クラス・ファイルに次の注釈を入力すると、WebServicesAssemblerではdemo.myInterfaceインタフェースにある注釈のみが処理されます。

@WebService(serviceEndpointInterface="demo.myInterface")

関連項目

J2SE 5.0注釈を使用したWebサービスのアセンブルの詳細は、第11章「注釈を使用したWebサービスのアセンブル」を参照してください。  

次のコマンドラインとAntタスクの例では、assembleコマンドを使用してボトムアップ方式でWebサービスを生成する方法を示しています。このコマンドでは、build/myService.earという名前のEARファイルが作成されます。

コマンドラインの例:
java -jar wsa.jar -assemble 
                  -input myservice.jar 
                  -className com.mycompany.HelloImpl 
                  -interfaceName com.myCompany.myService.Hello 
                  -output build 
                  -appName myService
Antタスクの例:
<oracle:assemble appName="myService" 
          output="build"
          input="myservice.jar 
          >
          <oracle:porttype
            interfaceName="com.myCompany.myService.Hello"
            className="com.mycompany.HelloImpl"/> 
</oracle:assemble>
必須引数:

assembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、assembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

corbaAssemble

corbaAssembleコマンドは、CORBAサーバント・オブジェクトをWebサービスとして公開する場合に使用します。このコマンドは、CORBA IDLファイルとCORBAネーミング・プロパティを入力として取ります。このコマンドの出力は、デプロイ可能なアーカイブを作成するために必要なすべてのファイルです。

WebServicesAssembler内から、その環境内から見つかるIDL-to-Javaコンパイラ(idlj)が起動されます。JDK binディレクトリが、path環境変数の構成要素として設定されている必要があります。WebServicesAssemblerでは、IDL-to-Javaコンパイラを使用してIDLファイルがJavaクラスにコンパイルされます。

コマンドラインの例:
java -jar wsa.jar -corbaAssemble 
                  -idlInterfaceName oraclecorba.Hello 
                  -corbanameURL corbaname::corba.orbd.host:1050#oracle.corba/Hello
                  -idlFile ./Hello.idl 
                  -uri /corba_hello 
                  -output dist 
                  -context corba_hello 
                  -targetNamespace http://oracle.j2ee.ws/corba/Hello
                  -typeNamespace http://oracle.j2ee.ws/corba/Hello/types
                  -serviceName Corba_hello 
                  -appName corba_hello 
                  -style rpc 
                  -use literal 
Antタスクの例:
<oracle:corbaAssemble idlInterfaceName="oraclecorba.Hello"
               corbanameURL="corbaname::corba.orbd.host:1050#oracle.corba/Hello"
               idlFile="./Hello.idl" 
               output="dist" 
               context="corba_hello"
               targetNamespace="http://oracle.j2ee.ws/corba/Hello"
               typeNamespace="http://oracle.j2ee.ws/corba/Hello/types"
               serviceName="Corba_hello" 
               appName="corba_hello" 
               style="rpc" 
               use="literal" 
               >
               <oracle:port  uri="/corba_hello" />
     </oracle:corbaAssemble>
必須引数:

corbaAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、corbaAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

dbJavaAssemble

dbJavaAssembleコマンドは、OracleデータベースにあるJava VMのJavaクラスからWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。

dbJavaAssembleコマンドでは、Java VMのJavaクラス用WSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。

関連資料

 

コマンドラインの例:
java -jar wsa.jar -dbJavaAssemble 
                  -dbJavaClassName oracle.sqlj.checker.JdbcVersion 
                  -dbUser scott/tiger 
                  -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj 
                  -dataSource jdbc/OracleManagedDS
                  -appName javacallin
Antタスクの例:
<oracle:dbJavaAssemble
     dbUser="scott/tiger"
     dbJavaClassName="oracle.sqlj.checker.JdbcVersion"
     dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj"
     dataSource="jdbc/OracleManagedDS"
     appName="javacallin"
/> 
必須引数:

dbJavaAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、dbJavaAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

ejbAssemble

ejbAssembleコマンドは、EJBをWebサービスとして公開できるEARまたはEJB JARを作成する場合に使用します。バージョン2.1 EJBの、有効なJARを入力として指定する必要があります。システムでは、WSDLと固有のoracle-webservices.xmlデプロイメント・ディスクリプタが作成されます。

デフォルトでは、このコマンドにより、直接デプロイできるバージョン2.1 EJBファイルが入ったEARファイルが作成されます。oracle-webservices.xmlファイルには、WebサービスとしてのEJBへのアクセスに使用できるコンテキストとURLパターンが指定されています。

EJBをEARファイルとしてデプロイしない場合は、かわりにEJB JARファイルを作成できます。この場合、たとえば、EJBをJARファイルとしてJ2EEコンテナにデプロイすることも、Antなどのその他のJ2EEアプリケーション・デプロイ・ツールを使用することもできます。EJBをJARファイルとして保存するには、ear引数にディレクトリを指定します。

WSIFバインディングのWSDLへのアセンブル

ejbAssembleコマンドでは、WSIFバインディングをWSDLに追加することもできます。EJBをWebサービスとして公開しているときに、WSIFバインディングを追加するには、wsifEjbBinding引数を使用します。className引数にEJBのホーム・インタフェースを、jndiName引数にそのJNDI名を、それぞれ指定する必要があります。


注意

ejbAssembleコマンドまたはWebServicesAssemblerを使用して、バージョン3.0のEJBからWebサービスをアセンブルすることはできません。これを行うには、J2SE 5.0注釈を使用する必要があります。詳細は、「バージョン3.0のEJBからWebサービスをアセンブルするために注釈を使用する手順」を参照してください。 


関連資料

  • このパラメータを指定する様々な方法については、「ear」を参照してください。

  • WSIFの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「Webサービス起動フレームワークの使用方法」を参照してください。

  • 個々のポートおよび複数のポートに対するWSIFバインディングの追加の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「EJBへのWSIFエンドポイントの構成」を参照してください。

  • ejbAssembleコマンドを使用してバージョン2.1 EJBをWebサービスとして公開する方法の詳細は、第8章「EJBを使用したWebサービスのアセンブル」を参照してください。

 

次のコマンドラインとAntタスクの例では、EARファイルbuild/myService.earを作成しています。

コマンドラインの例:
java -jar wsa.jar -ejbAssemble 
                  -output build 
                  -input myEjb.jar 
                  -ejbName myEjb 
                  -appName myService 
Antタスクの例:
<oracle:ejbAssemble output="build" 
             input="myEjb.jar" 
             ejbName="myEjb" 
             appName="myService"
             /> 
必須引数:

ejbAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、ejbAssembleコマンドで使用できるすべての引数を示しています。

追加Antサポート:

jmsAssemble

jmsAssembleコマンドは、JMS宛先(キューまたはトピック)をWebサービスとして公開する場合に使用します。JMS Webサービスには、sendとreceiveの2種類の操作があります。send操作では、JMS宛先にメッセージが送信されます。receive操作では、JMS宛先からのメッセージを取得します。一部のJMSメッセージ・プロパティ(たとえば、相関ID)は、SOAPヘッダーとして公開できます。

関連項目

jmsAssembleコマンドを使用してJMS宛先をWebサービスとして公開する方法の詳細は、第9章「JMS宛先を使用したWebサービスのアセンブル」を参照してください。 

コマンドラインの例:
java -jar wsa.jar -jmsAssemble 
           -sendConnectionFactoryLocation jms/ws/mdb/theQueueConnectionFactory
           -sendQueueLocation jms/ws/mdb/theQueue
           -replyToConnectionFactoryLocation jms/ws/mdb/logQueueConnectionFactory
           -replyToQueueLocation jms/ws/mdb/logQueue 
           -linkReceiveWithReplyTo true 
           -targetNamespace http://oracle.j2ee.ws/jms-doc 
           -typeNamespace http://oracle.j2ee.ws/jms-doc/types 
           -serviceName JmsService 
           -appName jms_service 
           -context jms_service 
           -input ./demo/build/mdb_service.jar 
           -uri JmsService 
           -output ./demo/dist
Antタスクの例:
<oracle:jmsAssemble 
       linkReceiveWithReplyTo="true"
       targetNamespace="http://oracle.j2ee.ws/jms-doc"
       typeNamespace="http://oracle.j2ee.ws/jms-doc/types"
       serviceName="JmsService" 
       appName="jms_service" 
       context="jms_service"
       input="./demo/build/mdb_service.jar" 
       output="./demo/dist" 
       >
       <oracle:port  uri="JmsService"
          sendConnectionFactoryLocation="jms/ws/mdb/theQueueConnectionFactory"  
          sendQueueLocation="jms/ws/mdb/theQueue"
          replyToConnectionFactoryLocation="jms/ws/mdb/logQueueConnectionFactory"
          replyToQueueLocation="jms/ws/mdb/logQueue"/>
</oracle:jmsAssemble>
必須引数:

jmsAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、jmsAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

plsqlAssemble

plsqlAssembleコマンドは、ストアド・プロシージャおよびファンクションを含むPL/SQLパッケージからWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。

関連項目

 

WSIFバインディングのWSDLへのアセンブル

plsqlAssembleコマンドは、PL/SQLパッケージに対するWSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。

関連資料

データベース・リソース用のバインディングのWSDLへの追加については、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「データベース・リソースへのWSIFエンドポイントの構成」を参照してください。 

コマンドラインの例:
java -jar wsa.jar -plsqlAssemble 
                  -appName query
                  -dbUser scott/tiger
                  -sql Company 
                  -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj 
                  -dataSource jdbc/OracleManagedDS
Antタスクの例:
<oracle:plsqlAssemble 
     dbUser="scott/tiger"
     appName="query"
     sql="Company"
     dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj"
     dataSource="jdbc/OracleManagedDS"
/>
必須引数:

plsqlAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、plsqlAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

sqlAssemble

sqlAssembleコマンドは、SQL問合せやデータ操作言語(DML)などのSQL文からWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。

関連項目

 

WSDLへのWSIFバインディングの追加

sqlAssembleコマンドでは、SQL問合せ用WSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。

関連項目

データベース・リソース用のバインディングのWSDLへの追加については、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「データベース・リソースへのWSIFエンドポイントの構成」を参照してください。  

次のコマンドラインとAntタスクの例では、データベース接続を確立して2つのSQLコマンドを実行しています。

コマンドラインの例:
java -jar wsa.jar -sqlAssemble 
  -dbUser scott/tiger 
  -sqlstatement "getEmp=select ename, sal from emp where empno=:{id NUMBER}"
  -sqlstatement "getEmpBySal=select ename, sal from emp where sal>:{mysal NUMBER}"
  -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj 
  -dataSource jdbc/OracleManagedDS
Antタスクの例:
<oracle:sqlAssemble
   dbUser="scott/tiger"
   dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj"
   dataSource="jdbc/OracleManagedDS"
   appName="query">
       <sqlstatement value="getEmp=select ename, sal from emp where empno=:{id 
NUMBER}"/>
       <sqlstatement value="getEmpBySal=select ename, sal from emp where sal>:{mysal 
NUMBER}"/>
</oracle:sqlAssemble>
必須引数:

sqlAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、sqlAssembleコマンドで使用できるすべての引数を示しています。

Antタスクのサポート:

topDownAssemble

topDownAssembleコマンドは、WSDL記述をベースにしたWebサービスで必要となるクラスとデプロイメント・ディスクリプタを作成する場合に使用します。これらのファイルは、EARファイル、WARファイル、ディレクトリのいずれにも格納できます。inputまたはclasspath引数の値を指定して、指定した実装クラスが適切にロードされるようにする必要があります。

このコマンドは、通常genInterfaceとともに使用され、トップダウン方式でWebサービスを生成します。これらのコマンドを一緒に使用してWebサービスを生成するに当たっては、これらのコマンドのunwrapParameters引数には同じ値を指定する必要があります。

実装可能なサービス要素は1つのみです。WebServicesAssemblerでは、一度に1つのサービスに対してのみアーチファクトを生成できます。複数のサービスがWSDLで記述されている場合は、コマンドライン引数serviceNameを使用して、使用対象のサービスを指定できます。

生成されたクラスの名前の間に不整合がある場合は、JAX-RPCの名前衝突に関する4.3.12項で記述されているように、JAX-RPCのルールに従って解決されます。詳細は、「名前競合の解決」を参照してください。

関連項目

topDownAssembleコマンドを使用してWSDL記述をベースにしてWebサービスを生成する方法の詳細は、第6章「WSDLからのWebサービスのアセンブル」を参照してください。 

WSDLの制限事項

次のリストは、WebServicesAssemblerが使用できるWSDLについての制限事項です。

次のコマンドラインとAntタスクでは、Webサービスに必要なクラスとデプロイメント・ディスクリプタを作成しています。build/myService.earというEARが作成されます。input引数のターゲットには実装クラスが含まれています。これらのクラスは、生成されるアーカイブにコピーされます。

コマンドラインの例:
java -jar wsa.jar -topDownAssemble 
                  -output build 
                  -wsdl my.wsdl 
                  -input myClasses 
                  -className com.mycompany.HelloImpl 
                  -appName myService
Antタスクの例:
<oracle:topDownAssemble output="build" 
                 wsdl="my.wsdl" 
                 input="myClasses" 
                 appName="myService"> 
         <porttype
           className="com.mycompany.HelloImpl"/> 
         </oracle:topDownAssemble>
必須引数:

topDownAssembleコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、topDownAssembleコマンドで使用できるすべての引数を示しています。

追加Antサポート:

WSDL管理コマンド

次の各コマンドは、WSDLに対するアクションを実行します。fetchWsdlおよびgenQosWsdlコマンドは、トップダウン方式でのWebサービス開発に使用され、WSDLの内容と位置を管理します。genWsdlコマンドは、ボトムアップ方式でのWebサービス開発でのWSDLの生成に使用されます。analyzeコマンドは、WSDLに記述されている機能がWebServicesAssemblerによってサポートされているかどうかを判別するためにいつでも使用できます。

analyze

analyzeコマンドは、このバージョンのWebServicesAssemblerによってWSDLを処理できるかどうかを確認する場合に使用します。analyzeコマンドにより、指定されたWSDLを使用してプロキシを生成できるかまたはトップダウン方式でのアセンブリ用のインタフェースを作成できるかどうかを判別します。また、このコマンドにより、WSDLが有効なXMLを使用しているか、OC4JのJAX-RPC要件に準拠しているかどうかをチェックします。

このコマンドは、WSDLを処理できない場合は、メッセージを戻します。


注意

analyzeコマンドでは、Web Services Interoperability(WS-I)仕様やWSDLの一般的な相互運用性への準拠はチェックされません。WS-I Analyzerツールを直接またはOracle JDeveloper内部から使用して、準拠をチェックすることが必要になる場合があります。相互運用性のチェックに使用できるツールの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「相互運用可能なWebサービスの実現」を参照してください。 


次のコマンドラインとAntタスクの例では、analyzeを使用して、指定されたWSDLを処理するかどうかを確認しています。

コマンドラインの例:
java -jar wsa.jar -analyze 
                  -wsdl myservice.wsdl
Antタスクの例:
<oracle:analyze wsdl="myservice.wsdl" 
         />
必須引数:

analyzeコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、analyzeコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

fetchWsdl

fetchWsdlコマンドは、トップダウン方式のWebサービスの生成において、基底(またはトップレベル)のWSDLファイルと、Webサービスのインポート済/組込み済のWSDLとスキーマを、指定された出力ディレクトリにコピーする場合に使用します。

WSDLとスキーマはすべて同じディレクトリにダウンロードされます。ネーミングの競合がある場合でも、ファイル名の拡張子の前に数字を追加することで解決されます。たとえば、3つのmyschema.xsdファイルをダウンロードする場合は、myschema.xsdmyschema1.xsdおよびmyschema2.xsdとネーミングされます。

次のコマンドラインとAntタスクの例では、URLに指定された基底WSDLと、それにインポートされたその他のWSDLフラグメントとスキーマがフェッチされています。次に、その結果がwsdlディレクトリに格納されます。

コマンドラインの例:
java -jar wsa.jar -fetchWdsl 
                  -wsdl http://someserver/services/aservice?WSDL 
                  -output wsdl
Antタスクの例:
<oracle:fetchWsdl wsdl="http://someserver/services/aservice?WSDL" 
           output="wsdl" 
           />
必須引数:

fetchWsdlコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、fetchWsdlコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

genConcreteWsdl

抽象WSDLはWebサービスのAPIを定義するには十分ですが、WebServicesAssemblerでは、Webサービスをデプロイする場合や、Webサービスと通信できるクライアント・プロキシを生成する場合には、具体的WSDLを必要とします。

抽象WSDLしかない場合は、genConcreteWsdlコマンドを使用します。トップダウン方式のWebサービス開発では、抽象WSDLがあれば、このコマンドにより具体的WSDLを生成できます。この処理は、このコマンド内で次のように行われます。すなわち、WSDLのwsdl:portType部分を分析してWebサービスのバインディング(すなわち、useおよびstyleの値)がdocument/literalまたはRPC/literalであるかを判別します。このコマンドにより、これらの値がWSDLのbinding要素に書き込まれ、output引数の値に設定した名前で保存されます。

次のコマンドラインとAntタスクの例では、抽象WSDLのmyAbstract.wsdlを入力として取り、outputDirディレクトリに具体的WSDL myConcrete.wsdlを生成しています。

コマンドラインの例:
java -jar wsa.jar -genConcreteWsdl 
                  -output outputDir/myConcrete.wsdl 
                  -wsdl myAbstract.wsdl
Antタスクの例:
<oracle:genConcreteWsdl output="outputDir/myConcrete.wsdl" 
                 wsdl="myAbstract.wsdl" />
必須引数:

genConcreteWsdlコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genConcreteWsdlコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

genQosWsdl

トップダウン方式のWebサービス開発では、genQosWsdlコマンドを使用して、セキュリティおよび信頼性の機能アサーションを、指定したWSDLに追加できます。機能アサーションとはWebサービス管理ポリシーの記述で、Webサービスのコンシューマはこれを使用してそのWebサービスで有効な管理ポリシーを知ることができます。

機能アサーションは、通常デプロイメント・ディスクリプタに定義されます。ddFileName引数を使用して機能アサーションを含むファイルを指定し、wsdl引数を使用して機能アサーションの挿入先となるWSDLの名前を指定します。output引数には、変更されたWSDLファイルが格納される場所を指定します。output引数を指定しない場合は、元のWSDLが上書きされます。

関連資料

機能アサーションを取得する方法とそれをWSDLに挿入する方法については、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「機能アサーションの使用」を参照してください。 

次のコマンドラインとAntタスクの例では、my.wsdlにアサーションを追加し、その結果をbuildディレクトリに格納しています。

コマンドラインの例:
java -jar wsa.jar -genQosWsdl 
                  -wsdl my.wsdl 
                  -ddFileName oracle-webservices.xml 
                  -output build 
Antタスクの例:
<oracle:genQosWsdl wsdl="my.wsdl" 
            ddFileName="oracle-webservices.xml" 
            output="build" 
            />
必須引数:

genQosWsdlコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genQosWsdlコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

genWsdl

genWsdlコマンドは、Javaインタフェースからボトムアップ方式でWebサービスをアセンブルするためにWSDLとJAX-RPCマッピング・ファイルを生成する場合に使用します。このコマンドでは、interfaceNameまたはclassNameのいずれかの引数が必須です。これらの引数は注釈付きのJavaクラスを指して、WSDLにサービス・エンドポイント・インタフェースの値を供給します。

次に、genWsdlコマンドの例を示します。interfaceName引数にはoracle.j2ee.demo.HelloIntfインタフェースが指定されています。

java -jar wsa.jar genWSDL -interfaceName oracle.j2ee.demo.HelloIntf -output wsdl 
-classpath classes 
WSIFバインディングのあるWSDLの生成

genWsdlコマンドでは、次の引数を使用して、生成されるWSDLにWSIFバインディングを追加できます。

genWsdlコマンドを使用して、WSDLの複数のポート用にWSIFバインディングを追加することもできます。

関連資料

WSIFの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「Webサービス起動フレームワークの使用方法」を参照してください。 

J2SE 5.0注釈とともに使用できるWSDLの生成

J2SE 5.0注釈を使用してWSDLを生成する場合は、interfaceName引数ではなくclassName引数を使用します。className引数に実装クラスを指定し、このクラスの宣言に@WebService注釈を指定する必要があります。

指定したclassNameにJ2SE 5.0注釈が含まれていない場合は、interfaceName引数を使用します。

J2SE 5.0注釈にはクラス名が必要です。注釈がインタフェースと実装クラスのいずれかに付けられる可能性があるためです。注釈がインタフェースのみに付けられている場合は、WebServicesAssemblerは、インタフェースが参照する実装クラスを介して注釈を取得できます。実装クラスにも注釈が付いている場合は、この注釈がWebServicesAssemblerによって処理されます。

次の例では、genWsdlコマンドを使用して、J2SE 5.0注釈とともに使用できるWSDLを生成しています。className引数には、oracle.j2ee.demo.HelloImplクラスが指定されています。

java -jar wsa.jar genWsdl -className oracle.j2ee.demo.HelloImpl -output wsdl -classpath 
classes

WebServicesAssemblerにインタフェースのJ2SE 5.0注釈のみを処理させる場合は、serviceEndpointInterfaceプロパティ付きの@WebService注釈を実装クラス・ファイルに入力します。J2SE 5.0注釈では、残りすべての注釈もこのサービス・エンドポイント・インタフェース・クラスに付けられているものと予期します。たとえば、実装クラス・ファイルに次の注釈を入力すると、WebServicesAssemblerではdemo.myInterfaceインタフェースにある注釈のみが処理されます。

@WebService(serviceEndpointInterface="demo.myInterface")

次のコマンドラインとAntタスクの例では、JAX-RPCマッピング・ファイルと、interfaceNameに指定されたJavaインタフェースに相当するWSDLを出力しています。その結果はetcディレクトリに格納されます。

コマンドラインの例:
java -jar wsa.jar -genWsdl 
                  -classpath myservice.jar 
                  -output etc 
                  -interfaceName com.mycompany.myservice.Hello
Antタスクの例:
<oracle:genWsdl output="etc"
    >
    <oracle:porttype interfaceName="com.mycompany.myservice.Hello"/>
    <oracle:classpath>
        <pathelement path="myservice.jar" />
    </oracle:classpath>
</oracle:genWsdl> 
必須引数:

genWsdlコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genWsdlコマンドで使用できるすべての引数を示しています。

追加Antサポート:

Java生成コマンド

次のコマンドでは、Javaインタフェース、プロキシ/スタブまたはJAX-RPC値タイプ・クラスを作成するためのコードが生成されます。

genInterface

トップダウン方式でのWebサービス開発の場合、このコマンドにより、各ポート・タイプのサービス・エンドポイント・インタフェースと、WSDLに定義された複合型に対応するJava値タイプ・クラス(Bean)が作成されます。また、XMLスキーマ型とJava値タイプ・クラス間のマッピングを記述するJAX-RPCマッピング・ファイルも作成されます。次に、これらのファイルを使用して、J2EE Webサービス・クライアントを構築することや、そのサーバーで実行可能な実装を作成することができます。

J2EE Webサービス・クライアントをアセンブルしていて、Oracle固有のクライアント構成を渡す必要がある場合は、ddFileName引数を使用します。

JAX-RPCマッピング・ファイルに加えて、genInterfaceコマンドは、表18-1にリストされているファイルをWSDLドキュメントから生成します。リストと説明では、JAX-RPCマッピング・ファイルを使用してこれらのファイルのデフォルトの命名規則が変更されていないものと想定しています。また、生成されたJavaクラスの名前の間に不整合がある場合は、JAX-RPCの名前衝突に関する4.3.12項で記述されているように、JAX-RPCのルールに従って解決されます。詳細は、「名前競合の解決」を参照してください。


注意

これらの生成されたファイルを変更しても、WebServicesAssemblerコマンドが再び起動されると上書きされる場合があるので、変更はお薦めできません。WebServicesAssemblerは、次の条件のスキーマ・タイプに対してgenInterfaceコマンドで生成されたファイルは上書きしません。

  • クラス名(パッケージ名を含む)が、WebServicesAssemblerコマンドに対して渡されたクラスパス引数にすでに存在する。

  • かつ、コマンドライン引数overwriteBeansが、false(デフォルト値)に設定されている。「overwriteBeans」を参照してください。

 

表18-1    genInterfaceが生成するファイル 
ファイル名  説明 

<derived_name>.java 

指定されているWSDLのスキーマで定義されている型ごとに1つのファイルが生成されます。Javaクラス・ファイルの名前derived_nameは、スキーマの複合型または要素の名前から導出されます。このクラスについては、JAX-RPCの、XMLの構造と複合型に関する4.2.3項、WSDLの障害に関する4.3.6項、およびSOAPの障害に関する6.5に説明があります。 

<portTypeName>.java 

サービス・エンドポイント・インタフェース・ファイルです。このファイルには、そのポート・タイプのすべてのWSDL操作に対するJavaメソッドが含まれます。portTypeNameは、WSDLドキュメントの<portTypeName>要素の値です。このファイルについては、JAX-RPC 1.1仕様の、WSDLポート・タイプに関する4.3.3項に説明があります。 


注意

WSDLファイルの要素名でマルチバイト・キャラクタが使用されている場合、genInterfaceコマンドはWSDLファイルを正しく処理できません。コマンドはクラス・ファイルを生成しますが、このクラス・ファイルは正しくコンパイルできません。

この制限事項を回避するには、インタフェースを生成するときに、dataBinding引数にfalseを設定します。詳細は、「要素名にマルチバイト・キャラクタが含まれるWSDLファイルを、genInterface、genProxyおよびtopDownAssembleが正しく処理できない」を参照してください。  


関連項目

 

次のコマンドラインとAntタスクの例では、srcディレクトリ(src/oracle/demo/service)にサービス・エンドポイント・インタフェースを作成しています。

コマンドラインの例:
java -jar wsa.jar -genInterface 
                  -output src 
                  -wsdl myservice.wsdl 
                  -packageName oracle.demo.service 
Antタスクの例:
<oracle:genInterface output="src" 
              wsdl="myservice.wsdl" 
              packageName="oracle.demo.service" 
              />
必須引数:

genInterfaceコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genInterfaceコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

genProxy

genProxyコマンドは、J2SE Webサービス・クライアントから使用可能な静的プロキシ・スタブを作成する場合に使用します。このコマンドにより、WSDLに指定されているポートに接続するために必要な、すべてのJavaファイルが作成されます。Oracle固有のクライアント構成がある場合、それをコマンドに渡すにはddFileName引数を使用します。

プロキシ・コードは、コンパイルしないと使用できません。

genProxyコマンドは、WSDLドキュメントから表18-2のファイルを生成します。リストと説明では、JAX-RPCマッピング・ファイルを使用してこれらのファイルのデフォルトの命名規則が変更されていないものと想定しています。また、生成されたJavaクラスの名前の間に不整合がある場合は、JAX-RPCの名前衝突に関する4.3.12項で記述されているように、JAX-RPCのルールに従って解決されます。詳細は、「名前競合の解決」を参照してください。

これらの生成されたファイルを変更しても、WebServicesAssemblerコマンドが再び起動されると上書きされる場合があるので、変更はお薦めできません。


注意

WebServicesAssemblerは、次の条件のスキーマ・タイプに対してgenProxyコマンドで生成されたファイルは上書きしません。

  • クラス名(パッケージ名を含む)が、WebServicesAssemblerコマンドに対して渡されたクラスパス引数にすでに存在する。

  • かつ、コマンドライン引数overwriteBeansが、false(デフォルト値)に設定されている。「overwriteBeans」を参照してください。

 

表18-2    genProxyが生成するファイル 
ファイル名  説明 

<derived_name>.java 

指定されているWSDLのスキーマで定義されている型ごとに1つのファイルが生成されます。Javaクラス・ファイルの名前derived_nameは、スキーマの複合型または要素の名前から導出されます。このクラスについては、JAX-RPCの、XMLの構造と複合型に関する4.2.3項、WSDLの障害に関する4.3.6項、およびSOAPの障害に関する6.5に説明があります。 

<portName>Client.java 

ユーティリティ・クラス・ファイルは、WSDL内のポートごとに生成されます。このファイルには、サービスのコール方法を示すコードが含まれます。サービスをテストするときは、このファイルのみを使用する必要があります。この点は、クライアントがサービスをコールするビークルとは異なります。これはコード例です。portNameは、WSDLドキュメントの<portName>要素の値です。

注意: JAX-RPCの仕様では、このファイルは必須ではありません。 

<portTypeName>.java 

サービス・エンドポイント・インタフェース・ファイルです。このファイルには、そのポート・タイプのすべてのWSDL操作に対するJavaメソッドが含まれます。portTypeNameは、WSDLドキュメントの<portTypeName>要素の値です。このファイルについては、JAX-RPC 1.1仕様の、WSDLポート・タイプに関する4.3.3項に説明があります。 

<serviceName>.java 

この名前のサービス・インタフェース・ファイルが、WSDLドキュメント内のすべてのサービスに対して生成されます。serviceNameは、WSDLの<serviceName>要素の値です。このクラスについては、WSDLサービスに関する4.3.9項、およびサービス・インタフェースに関する4.3.10項に説明があります。 

ランタイム・ディレクトリ/パッケージ 

これらのディレクトリには、Webサービス・プロキシ・コードが内部的に使用するファイルが含まれます。これらのファイルは、将来のリリースで変更または削除される可能性があるので、直接使用しないでください。 

関連項目

 

次のコマンドラインとAntタスクの例では、プロキシ・コード全体を作成してproxysrcディレクトリに格納しています。

コマンドラインの例:
java -jar wsa.jar -genProxy 
                  -output proxysrc  
                  -wsdl myservice.wsdl
Antタスクの例:
<oracle:genProxy output="proxysrc" 
          wsdl="myservice.wsdl" 
          />
必須引数:

genProxyコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genProxyコマンドで使用できるすべての引数を示しています。

追加Antサポート:

genValueTypes

genValueTypesコマンドは、指定されたスキーマからJAX-RPC値タイプ・クラス(Bean)を作成する場合に使用します。このコマンドにより、スキーマドリブンのWebサービス開発用のBeanが作成されます。

WebServicesAssemblerでは、genValueTypesの各起動用に複数の値タイプ・クラスを作成できます。このコマンドでは、コマンドラインで複数のschema引数、またはAntタスクで<schema value="">行がサポートされます。

このコマンドでは、Bean以外にcustom-type-mappings.xmlおよびjaxrpc-mappings.xmlファイルも作成されます。custom-type-mappings.xmlファイルにより、カスタム・シリアライザの構成が容易になります。生成されるカスタム・タイプ・マッピング・ファイルは、サービス・サイド・スキーマに準拠しますが、クライアント・サイドでの使用のために若干変更することはできます。

jaxrpc-mappings.xmlファイルは、ボトムアップ方式Webサービス開発用のWSDL生成時に供給できる部分的なJAX-RPCマッピング・ファイルです。

関連資料

  • 編集済サービス・サイドのカスタム・タイプ・マッピング・ファイルの例は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「サーバー・サイドのカスタム・タイプ・マッピング・ファイルの編集」を参照してください。

  • カスタム・シリアライザの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「Java値タイプのカスタム・シリアライズ」を参照してください。

 

次のコマンドラインとAntタスクの例では、スキーマmySchema.xsdおよびotherSchema.xsdに定義されたすべての複合型について値タイプ(Bean)を、また、ファイルcustom-type-mappings.xmlおよびjaxrpc-mappings.xmlを作成しています。Beanとファイルはbuildディレクトリに格納されます。

コマンドラインの例:
java -jar wsa.jar -genValueTypes 
                  -schema mySchema.xsd 
                  -schema otherSchema.xsd
                  -packageName com.mycompany 
                  -output build
Antタスクの例:
<oracle:genValueTypes packageName="com.mycompany" output="build">
                 <oracle:schema value="otherSchema.xsd"/>
                 <oracle:schema value="mySchema.xsd"/> 
 </oracle:genValueTypes>
必須引数:

genValueTypesコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genValueTypesコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

デプロイメント・ディスクリプタ生成コマンド

次のコマンドにより、EARのディスクリプタの生成に使用されるデプロイメント・ディスクリプタまたはファイルが作成されます。

genApplicationDescriptor

genApplicationDescriptorコマンドは、application.xmlファイルを作成する場合に使用します。このファイルはEARの生成時に使用できます。

input引数には、EARに格納されることになるWARおよびEJB JARを格納するディレクトリを指定します。生成されるapplication.xmlには、指定のinputディレクトリにあるWARおよびEJB JARのそれぞれに対するタグが含まれます。

コマンドラインの例:
java -jar wsa.jar -genApplicationDescriptor 
                  -input src/ejb 
                  -output build
Antタスクの例:
<oracle:genApplicationDescriptor 
        input="src/ejb" 
        output="build"
/>
必須引数:

genApplicationDescriptorコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genApplicationDescriptorコマンドで使用できるすべての引数を示しています。

追加Antサポート:

なし

genDDs

genDDsコマンドは、トップダウンまたはボトムアップ方式でのWebサービス生成でweb.xmlwebservices.xmlおよびoracle-webservices.xmlデプロイメント・ディスクリプタを作成する場合に使用します。

次のコマンドラインとAntタスクの例では、デプロイメント・ディスクリプタを作成してWEB-INFディレクトリに格納しています。

コマンドラインの例:
java -jar wsa.jar -genDDs 
                  -output WEB-INF 
                  -wsdl myservice.wsdl 
                  -classpath myservice.jar 
                  -interfaceName com.mycompany.myservice.Hello 
                  -className com.mycompany.myservice.HelloImpl
Antタスクの例:
<oracle:genDDs output="WEB-INF" 
        wsdl="myservice.wsdl" 
        classpath="myservice.jar" 
        >
        <oracle:porttype 
           interfaceName="com.mycompany.myservice.Hello"
           className="com.mycompany.myservice.HelloImpl"/>
        </oracle:genDDs>
必須引数:

genDDsコマンドを使用する際には、次の引数の指定が必須です。

すべての引数:

次のリストは、genDDsコマンドで使用できるすべての引数を示しています。

追加Antサポート:

メンテナンス・コマンド

次の各コマンドにより、WebServicesAssemblerコマンドの概略やツールのバージョン番号が戻されます。

help

helpコマンドは、WebServicesAssemblerコマンドのリストと簡単な説明を戻す場合に使用します。WebServicesAssemblerでも、次のように実行された場合にヘルプが戻されます。

特定のコマンド後ろに-helpを付けて実行すると、そのコマンドのヘルプを取得できます。たとえば、次のコマンドでは、genProxyコマンドとその必須およびオプションの引数に関する詳細なヘルプが戻されます。

java -jar wsa.jar -genProxy -help

helpコマンドは、コマンドライン上でのみサポートされます。これに相当するAntタスクはありません。次のコマンドラインの例では、WebServicesAssemblerによってサポートされているコマンドと引数に関するヘルプ・テキストが戻されます。

コマンドラインの例:
java -jar wsa.jar -help
Antタスクの例:

Antでのサポートはありません。

必須引数:

なし

すべての引数:

helpコマンドで使用できる引数は、次のとおりです。

追加Antサポート:

なし

version

versionコマンドは、WebServicesAssemblerツールのバージョン番号を取得する場合に使用します。

コマンドラインの例:
java -jar wsa.jar -version 
Antタスクの例:

Antでのサポートはありません。

必須引数:

なし

すべての引数:
追加Antサポート:

なし

WebServicesAssemblerの引数

この項では、各WebServicesAssemblerコマンドでコールできる引数について説明します。

Webサービス・アセンブリ用の一般引数

この項では、多くのWebServicesAssemblerコマンドで使用できる一般引数について説明します。これには、ファイル関連入出力引数、WSDL関連引数およびマッピング関連引数があります。

appName

appName <String>

アプリケーションの名前を指定します。この名前は、通常contexturiなどの他の引数のベース値として使用されます。earおよびwar引数が指定されていない場合に、この引数の値がEARおよびWARファイルのネーミングにも使用されます。

bindingName

bindingName <String>

生成されるWSDL内で使用されるバインディングの名前。

classFileName

classFileName <String>

className引数で指定された実装クラスのJavaファイル名を指定します。このファイルは、アセンブリ時に必要に応じてコンパイルされます。

className

className <String>

Webサービスの実装クラスのクラス名(パッケージ名を含む)を指定します。

この引数を使用すると、<servlet-class>要素がweb.xmlに追加されます。

EJBをWebサービスとして公開している場合、className引数の値はEJBのホーム・インタフェースである必要があります。

関連項目

className引数を指定してこのコマンドを使用する方法の詳細は、「ejbAssemble」を参照してください。 

この引数をwsifJavaPort引数とともに使用すると、WSDLのportコンポーネントにあるjava:address要素にclassname属性が追加されます。

wsifEjbPort引数とともにこの引数を使用すると、WSDLのportコンポーネントにあるejb:address要素にclassname属性が追加されます。

classpath

classpath <String>

WebServicesAssemblerに与えられるユーザー作成クラスをすべて含むクラスパスを指定します。この引数を指定する理由の1つは、一部の値タイプ・クラスまたは例外を作成済の場合に、WebServicesAssemblerが上書きしないようにするためです。*Assembleコマンドなど、WARファイルを生成するコマンドの場合、この引数により、Webサービスが依存するが、生成されたWARに入れないクラスを指定することができます。

この引数により、生成されたWARファイルに追加クラスがコピーされることはありません。実行時またはデプロイ時に必要となるクラスは、手動でWARまたはEARにコピーするか、あるいはサーバー構成の各オプションを使用してアプリケーション・サーバーのクラスパスで使用可能にする必要があります。

WARファイルにクラスを組み入れるには、input引数を使用することもできます。

関連項目

この引数の詳細は、「input」を参照してください。 

クラスパスに複数のパスをリストするには、UNIXオペレーティング・システムを使用している場合は、コロン(:)で区切ります。Windowsオペレーティング・システムを使用している場合は、セミコロン(;)で複数のパスを区切ります。

debug

debug <true|false>

指定されたコマンドに関するすべての詳細診断メッセージを出力するかどうかを指定します。デフォルト値はfalseです。

次のコマンドラインとAntタスクの例では、assembleコマンドのパフォーマンスに関する診断メッセージを表示しています。

コマンドラインの例:

java -jar -wsa.jar -assemble -debug true...

Antタスクの例:

<oracle:assemble debug="true"
    ....
 />

ear

ear <file name>

生成されるEARファイルの名前と位置を指定します。次の例では、distディレクトリにEARファイルmyService.earを作成しています。

-ear dist/myService.ear

次の各項目は、WebServicesAssemblerによってear引数の値がどのように解釈されるかについての説明です。

earwar引数は、同じコマンドラインかAntタスクで一緒に使用できます。表18-3では、これらの引数にファイルとディレクトリのどちらを指定したかに応じてこれらの引数の動作がどう異なってくるかについて、説明します。

表18-3    値がファイルとディレクトリのいずれであるかに応じたearおよびwar引数の動作 
earおよびwar引数の組合せ  動作 

ear directory1

war directory2 

earwar引数にそれぞれディレクトリが指定された場合は、次の動作が行われます。

  • .earファイルは作成されません。

  • .earファイルの内容がdirectory1に生成されます。

  • .warファイルはdirectory1に作成されます。

  • .warファイルの内容がdirectory2に生成されます。

 

ear directory1

war file 

ear引数にディレクトリが、war引数にファイルが指定された場合は、次の動作が行われます。

  • .earファイルは作成されません。

  • .earファイルの内容がdirectory1に生成されます。

  • .warファイルはdirectory1に作成されます。

  • .warファイルが、ユーザー指定の名前(fileパラメータの値)で作成されます。

 

ear file

war directory2 

ear引数にファイルが、war引数にディレクトリが指定された場合は、次の動作が行われます。

  • .earファイルが、ユーザー指定の名前(fileパラメータの値)で作成されます。

  • .warファイルは、.earファイル内に作成されます。

  • .warファイルの内容はdirectory2に生成されます。

 

ear file1

war file2 

ear引数にファイルが、war引数にファイルが指定された場合は、次の動作が行われます。

  • .earファイルが、ユーザー指定の名前(file1パラメータの値)で作成されます。

  • .warファイルは、.earファイル内に作成されます。

  • .warファイルが、ユーザー指定の名前(file2パラメータの値)で作成されます。

 

ear引数が未指定

war引数が未指定 

earwarのどちらの引数も指定されていない場合は、次の動作が行われます。

  • .earファイルは、デフォルト名application_name.earで生成されます。

  • .warファイルは、デフォルト名application_name_web.warで生成されます。

これらの例で、application_nameappName引数の値を表します。  

ejbName

ejbName <String>

Webサービスとして公開するEJBの名前。これはクラス名ではありません。ejb-jar.xmlファイルの<ejb-name>タグに指定されたEJBの一意の名前です。

EJBがバージョン2.1の場合、この引数を使用すると<ejb-link>要素がwebservices.xmlに追加されます。

emptySoapAction

emptySoapAction <true|false>

trueの場合、生成されるWSDL内の各SOAPバインディング操作のsoapAction属性の値は、空の文字列に設定されます。falseの場合(デフォルト)、ターゲットの名前空間と操作名(<target-namespace>/<operation-name>)は、soapAction属性の値として使用されます。

OracleAS Web Services WSDLを使用してクライアント・サイド・プロキシを生成する他のベンダー製のツールでは、soapActionのデフォルト値を認識することや受け入れることができないことがあります。この引数をtrueに設定すると、このようなツールと相互運用できる可能性が高くなります。

help

help

指定されたコマンドのヘルプ・メッセージを表示します。help引数は、コマンドの前後いずれにも指定できます。

次のコマンドラインとAntタスクの例では、assembleコマンドに関するヘルプ・メッセージを表示しています。

コマンドラインの例:

java -jar -wsa.jar -assemble -help ...

または

java -jar -wsa.jar -help -assemble ...

Antタスクの例:

<oracle:assemble debug="help"
    ....
 />

initialContextFactory

initialContextFactory <String>

初期コンテキストを提供するファクトリの名前を指定します。これはオプションの引数で、genWsdlまたはejbAssembleコマンドでEJB WSIFポートを構成するときに、wsifEjbBindingまたはwsifEjbPortとともにコールできます。この属性に値を指定しなかった場合は、jndi.propertiesファイルにある値が使用されます。

input

input <String>

WEB-INF/classesにコピーされるクラスを格納するJARまたはディレクトリを指定します。この引数は、WebServicesAssemblerによって使用されるクラスパスに追加されます。ejbAssembleコマンドでは、inputの値には、EJB JARファイルまたはEJB JARの内容を格納するディレクトリが想定されます。

この引数にJARを指定した場合は、JARが展開されてその内容がWEB-INF/classesディレクトリにコピーされます。

input引数は、コマンドラインまたはAntタスクで複数回使用できます。Antタスクでは複数のタグとして書き込み、value属性を指定します。例18-1に、Antタスクにおけるinputの複数のインスタンスを示します。

例18-1    Antタスクにおけるinputの複数のインスタンス

<oracle:jmsAssemble 
       linkReceiveWithReplyTo="true"
       targetNamespace="http://oracle.j2ee.ws/jms-doc"
       typeNamespace="http://oracle.j2ee.ws/jms-doc/types"
       serviceName="JmsService" 
       appName="jms_service" 
       context="jms_service"
       input="./demo/build/mdb_service.jar" 
       output="./demo/dist" 
       input="first.jar"
       >
             <oracle:input value="second.jar"/>
             <oracle:input value="third.jar"/>
</oracle:jmsAssemble>

interfaceFileName

interfaceFileName <String>

サービス・エンドポイント・インタフェース(SEI)Javaソース・コード・ファイルのパスと名前を指定します。WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。

interfaceFileName引数を指定すると、WebServicesAssemblerが生成済WSDL内からJavaメソッドのパラメータ名を検索する際に役立ちます。

関連項目

このトピックの詳細は、「WSDLでのJavaメソッド・パラメータ名の表現方法」を参照してください。 

interfaceName

interfaceName <String>

サービス・エンドポイント・インタフェース(SEI)を格納するJavaクラスの名前(パッケージ名を含む)を指定します。

この引数を使用すると、<service-endpoint-interface>String</service-endpoint-interface>要素がWEB-INF/webservices.xmlに追加されます。この場合、StringinterfaceNameに指定された値です。

データベース・リソースからWebサービスをアセンブルするコマンド(plsqlAssemblesqlAssembledbJavaAssembleまたはaqAssemble)でこの引数を使用すると、<service-endpoint-interface>String</service-endpoint-interface>要素が、serviceName-java-wsdl-mapping.xmlファイルに追加されます。StringinterfaceNameに指定された値で、serviceNameserviceName引数の値です。

jndiName

jndiName <String>

EJBのJNDI名を指定します。

jndiProviderURL

jndiProviderURL <String>

JNDIプロバイダのURLを指定します。これはオプションの引数で、genWsdlまたはejbAssembleコマンドでEJB WSIFポートを構成するときに、wsifEjbBindingまたはwsifEjbPortとともにコールできます。この属性に値を指定しなかった場合は、jndi.propertiesファイルにある値が使用されます。

mappingFileName

mappingFileName <String>

JAX-RPCマッピング・ファイルを指すファイル位置を指定します。WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。

この引数を使用すると、<jaxrpc-mapping-file>要素がwebservices.xmlに追加されます。ファイルの位置と名前は、デプロイメント・ディスクリプタに書き込まれるときに変更されることがあります。いくつかのマッピングが元のファイルで定義されていないときは、ファイルの内容は、アーカイブに格納される前に変更されることがあります。

関連項目

JAX-RPCマッピング・ファイルの内容とその使用方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。 

output

output <String>

生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。output引数を指定しなかった場合、出力は現行ディレクトリに格納されます。

genConcreteWsdlコマンドで使用する場合を除いて、output引数のターゲットは、常にディレクトリであるものと想定されます。genConcreteWsdlコマンドの場合は、ターゲットにはファイルが想定されます。

output引数は、通常earおよびwar引数とともに使用されます。

関連項目

これらの引数とともに使用されたときのoutputの動作の詳細は、「ear」および「war」を参照してください。 


注意

outputear(またはwar)引数に対して同じディレクトリを指定すると、WebServicesAssemblerによりエラーが戻されます。  


packageName

packageName <String>

JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。packageNameが指定されておらず、マッピング・ファイルでも宣言されていない場合、パッケージ名はWSDLのターゲットの名前空間から導出されます。

関連項目

名前空間とパッケージのマッピングの詳細は、「ターゲットWSDL名前空間とパッケージ名のマッピングのデフォルト・アルゴリズム」を参照してください。 


注意

packageName引数は、サービス・エンドポイント・インタフェースおよびWSDLと同じターゲットの名前空間を持つスキーマ型に対するパッケージ名にのみ影響します。スキーマ値タイプが異なる名前空間にある場合は、スキーマ値タイプは、WebServicesAssemblerによりデフォルトで別のパッケージに生成されます。単一パッケージへのコードの生成の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数の名前空間のあるWSDLから単一のパッケージへのコードの生成」を参照してください。 


portName

portName <String>

WSDLドキュメント内のポート名を指定します。この引数により、<port name="...">WSDL要素に値が移入されます。

ポート名を指定しなかった場合、デフォルトのポート名は、トランスポートおよびSOAPのバージョンかまたはWSIFタイプに基づいて設定されます。デフォルトのポート名は次のいずれかの値になります。

portTypeName

portTypeName <String>

生成されるWSDL内で使用されるポート・タイプ名を指定します。この引数により、<portType name="..."> WSDL要素に値が移入されます。

restSupport

restSupport <true|false>

Representational State Transfer(REST)のサポートをこのWebサービスに対して有効にするかどうかを指定します。デフォルト値はfalseです。

RESTサービスを使用すると、HTTP GETおよびPOSTコマンドでサービス・オブジェクトを取得および変更できるようになります。また、REST Webサービスには、SOAPエンベロープではなくXML文書を使用したメッセージ送信の機能もあります。

関連項目

RESTサポート付きWebサービスの実装方法の詳細は、第12章「REST Webサービスのアセンブル」を参照してください。 

schema

schema <String>

XMLスキーマ・ドキュメントへの相対パスまたはURLを指定します。この引数により、値タイプをWebServicesAssemblerに生成させるのではなく、値タイプのスキーマを指定できます。この引数は、JAX-RPCマッピング・ファイルと組み合せて使用する必要があります。

関連項目

マッピング・ファイルの指定の詳細は、「mappingFileName」を参照してください。 

schema引数は、コマンドラインまたはAntタスクで複数回使用できます。Antタスクでは複数のタグとして書き込み、value属性を指定します。例18-2に、Antタスクにおけるschemaの複数のインスタンスを示します。

例18-2    Antタスクにおけるschemaの複数のインスタンス

<oracle:genValueTypes packageName="com.mycompany" 
              output="build"> 
                   <oracle:schema value="otherSchema.xsd"/>
                   <oracle:schema value="mySchema.xsd"/>
 </oracle:genValueTypes>

searchSchema

searchSchema <true|false>

WSDLにリストされているスキーマにあるすべての型を処理するかどうかを指定します。この引数をtrueに設定すると(デフォルト)、すべての型が処理されます。これは、スキーマ内にはあるがWSDLから直接には参照されない型を使用するWebサービス実装の使用時に便利です。この引数をfalseに設定すると、WSDLから参照されない型は処理されません。

serviceName

serviceName <String>

サービス名を指定します。serviceName引数には、生成済またはパッケージ済のWSDLファイル(serviceName.wsdl)およびマッピング・ファイル(serviceName-java-wsdl-mapping.xml)を指定します。また、この引数は、ボトムアップ方式Webサービス・アセンブリにおいて、<service name="..."> WSDL要素の値の指定も行います。

この引数をトップダウン方式でのWebサービスとプロキシのアセンブリで使用すると、WSDLでは、この名前のサービスが見つかるものと予期します。この場合、<service name="..."> WSDL要素の値は変更されません。

strictJaxrpcValidation

strictJaxrpcValidation <true|false>

サービス・エンドポイント・インタフェース、例外および値タイプを、すべてのJAX-RPC検証規則に関して検証するかどうかを設定します。この引数を指定しないかtrueに設定すると(デフォルト)、次の妥当性チェックが実行されます。

これらの妥当性チェックのいずれかが失敗した場合、処理が停止し、インタフェースの問題点を記載したエラーがスローされます。

この引数をfalseに設定した場合は、サービス・エンドポイント・インタフェースでのjava.rmi.Remoteの実装や、メソッドでのjava.rmi.RemoteExceptionのスローが不要になります。ただし、メソッドに、JAX-RPC規則に準拠しないパラメータや例外がある場合は、メソッドは無視され、処理されません。

この引数をfalseに設定すると、Beanや例外の場合に、Bean(または例外)の無効なプロパティが無視されます。有効なプロパティは処理され、WSDLに追加されます。この場合の動作では、ユーザーが予期しないワイヤ・レベルの書式が生成されることがありますので、注意してください。無効なプロパティの場合、WebServicesAssemblerにより警告がスローされます。

useDimeEncoding

useDimeEncoding <true|false>

添付ファイル付きSOAPメッセージのケーブル上でのストリーミングにDIMEエンコーディングを使用するかどうかを指定します。useDimeEncodingtrueに設定すると、添付ファイルにはMIMEのかわりにDIMEエンコーディングが使用されます。デフォルト値はfalseです。

この引数を使用すると、<use-dime-encoding>要素がoracle-webservices.xmlに追加されます。


注意

useDimeEncoding引数を使用して生成したメッセージは、相互運用性がなく、Oracle以外のWebサービスまたは以前のリリースのOracle Application Serverとは互換性がありません。この引数を指定したWebサービスの生成は、パフォーマンスが重要である社内プロジェクトに有効です。 


関連資料

DIMEエンコーディングと添付ファイルの使用方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「DIME添付ファイルの処理」を参照してください。 

war

war <file name or directory name>

生成するWARの名前を指定します。ファイルを指定する場合、拡張子は.warである必要があります。ディレクトリを指定する場合は、WARの内容が指定されたディレクトリに書き込まれます。次の例では、distディレクトリにWARファイルmyService.warを作成しています。

-war dist/myService.war

次の各項目は、WebServicesAssemblerによってwar引数の値がどのように解釈されるかについての説明です。

セッション引数

セッション状態の動作の制御には、次の引数を使用できます。

callScope

callScope <true|false>

サーバントがコールごとに作成され、コール後はガベージ・コレクションされるかどうかを指定します。デフォルト値はfalseです。callScopesessionの両方をtrueに設定すると、エラーがスローされます。

値をtrueに設定してこの引数を使用すると、<param name="scope">call</param>要素がoracle-webservices.xmlに追加されます。

recoverable

recoverable <true|false>

セッション状態のあるアプリケーションをリカバリ可能にするかどうかを指定します。この引数は、サービスが、セッション・スコープを持つステートフルWebサービスとして公開されているときにのみ使用できます。デフォルトであるtrueでは、セッション状態が保持されます。リカバリ可能にすると、ブールの要素<distributable>web.xmlに追加されます。リカバリ可能とは、対話しているノードがダウンした場合に、サービスが分散環境内でリカバリできることを意味します。つまり、Webサービスの状態も分散可能である必要があります。

recoverablefalseの場合は、<distributable>要素はweb.xmlに追加されません。

session

session <true|false>

HTTPセッションの期間、サーバント・インスタンスを保持することを指定します。この引数が有効なのはHTTPトランスポートの場合のみです。セッション・タイムアウトは、timeout引数によってチューニングできます。デフォルト値はfalseです。timeoutが設定されると、sessionがデフォルトでtrueに設定されます。callScopesessionの両方をtrueに設定すると、エラーがスローされます。

この引数を使用すると、<param name="scope">session</param>要素がoracle-webservices.xmlに追加されます。

timeout

timeout <int>

セッションの開始からタイムアウトまでの秒数を指定します。デフォルト値は60秒です。この値を0または負の数値に設定すると、セッションはタイムアウトしません。

この引数に値を設定すると、session引数は自動的にtrueに設定されます。session引数がtrueで、timeoutが設定されていない場合は、セッションは60秒後にタイムアウトになります。

この引数を使用すると、<param name="session-timeout">value</param>要素がoracle-webservices.xmlに追加されます。この場合、valuetimeoutに指定された整数値です。

CORBAアセンブリ引数

corbaAssembleコマンドで使用できる引数は、次のとおりです。これらの引数を使用して、CORBAサーバント・オブジェクトによりWebサービスをアセンブルする方法を制御できます。

corbanameURL

corbanameURL <String>

CORBAネーミング・サービスを使用した、CORBAオブジェクトのロケーティング用URLを指定します。

corbaObjectPath

corbaObjectPath <String>

CORBAオブジェクトへのパスを指定します。

idlFile

idlFile <String>

CORBA idlファイルの位置を指定します。

idlInterfaceName

idlInterfaceName <String>

Webサービスを生成するベースとなるidl内のインタフェースの名前を指定します。

idljPath

idljPath <String>

IDL-to-Javaコンパイラ(idlj)を格納するディレクトリのパスがpathに未指定の場合に、それを指定します。

ORBInitialHost

ORBInitialHost <String>

ORBのホスト名を指定します。

ORBInitialPort

ORBInitialPort <String>

ORBのポートを指定します。

ORBInitRef

ORBInitRef <String>

ORBの初期参照を指定します。

データベース・アセンブリ引数

これは、データベース・アーチファクトからWebサービスをアセンブルするコマンドの引数です。データベース・アーチファクトには、PL/SQLストアド・プロシージャ、SQL文、Oracleアドバンスト・キュー(AQ)、OracleデータベースにあるJava VMのJavaクラスなどがあります。

関連項目

データベース・アーチファクトからWebサービスをアセンブルする方法の詳細は、第10章「データベースWebサービスのアセンブル」を参照してください。 

aqConnectionFactoryLocation

aqConnectionFactory <String>

公開されるAQに対するOracle Streams AQ JMSキューのコネクション・ファクトリのJNDI位置を指定します。

aqConnectionLocation

aqConnectionLocation <String>

公開されるAQに接続するOracle Streams AQ JMSキュー・コネクションのJNDIの位置を指定します。

dataSource

dataSource <String>

実行時にWebサービスによって使用されるデータソースのJNDI位置を指定します。

この引数を使用すると、次のparam name属性がoracle-webservices.xml<implementor>要素に追加されます。dataSource引数に指定したパスが、dataSource value変数になります。

<param name="databaseJndiName">dataSource value</param>

たとえば、Antタスク内にdataSource="ws/dbws/src/query/datasource"と指定すると、<implementor>要素に次のように書き込まれます。

<implementor type="database">
     <param name="databaseJndiName">ws/dbws/src/query/datasource</param>
</implementor> 

dbConnection

dbConnection <String>

データベースのJDBC URLを指定します。この引数は、コード生成時のデータベース接続を目的として、dbUser引数とともに使用されます。

dbJavaClassName

dbJavaClassname <String>

Webサービスとして公開するサーバー・サイドJavaクラスの名前を指定します。

dbUser

dbUser <String>

user/passwordの形式でデータベースのスキーマとパスワードを指定します。この引数は、コード生成時のデータベース接続を目的として、dbConnection引数とともに使用されます。

コマンドラインでWebServicesAssemblerを起動してデータベースにアクセスする際に、-dbUserを使用してパスワードを指定しないと、パスワードの入力を要求されます。これは、パスワードがクリア・テキストで表示されるのを防ぐためです。

jpubProp

jpubProp <String>

Oracle JPublisher変換プロセスを制御するプロパティの入ったファイルの名前を指定します。

関連資料

 

sql

sql <String>

sql引数の値は、ともに使用するのがaqAssembleであるかplsqlAssembleであるかに応じて意味が異なります。

sql引数は、大/小文字が区別されるSQL文内の名前を処理できます。たとえば、次のSQL文での引用符の使用は、パッケージ名SIMpleで大/小文字が区別されていることを示します。

create package "SIMple" as
procedure foo;
end;

コマンドラインでsql引数のターゲットとしてSIMpleパッケージ名を使用するには、次のように入力します。

-sql '"SIMple"'

Antタスクで使用するには、次のように入力します。

sql="&quot;SIMple&quot;"

いずれの場合もSIMpleを囲む引用符が必要です。引用符とパッケージ名はOracle JPublisherに渡されます。Oracle JPublisherでは、引用符を使用してデータベース内の名前と対照して識別子を解決します。

sqlstatement

sqlstatement <String>

Webサービスとして公開するDML文またはSQL問合せを指定します。

WebServicesAssembler AntタスクにSQL文を渡すときは、正しく引用符が付けられていることを確認する必要があります。sqlstatementの値には、表18-4に示すように、標準のXML引用符を使用して引用符を付けることができます。

表18-4    sqlstatementのAntタスクで有効な引用記号 
記号  引用符 

&amp; 

&quot; 

&lt; 

&gt; 

&apos; 

複数のsqlstatement引数をコマンドラインまたはAntタスクに指定できます。Antタスクでは複数のタグとして書き込み、value属性を使用します。例18-3に、Antタスクにおけるsqlstatementの複数のインスタンスを示します。

例18-3    Antタスクにおけるsqlstatementの複数のインスタンス

<oracle:sqlAssemble
   dbUser="scott/tiger"
   dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj"
   dataSource="jdbc/OracleManagedDS"
   appName="query">
       <sqlstatement value="getEmp=select ename, sal from emp where empno=:{id 
NUMBER}"/>
       <sqlstatement value="getEmpBySal=select ename, sal from emp where sal&gt;:{mysal 
NUMBER}"/>
</oracle:sqlAssemble>

sqlTimeout

sqlTimeout <int>

データベース操作のタイムアウトを秒単位で指定します。データベース操作には、PL/SQLストアド・ファンクションまたはPL/SQLストアド・プロシージャの起動、SQL問合せおよびDML文があります。デフォルトは0です。つまり、サービスはタイムアウトしないということです。

sysUser

sysUser <String>

SYS権限のあるユーザーの名前とパスワードを、dbSysUser/syspasswordの形式で指定します。この引数を使用すると、コード生成時にPL/SQLおよびJavaラッパー・コードがデータベースに自動的にインストールされます。

useDataSource

useDataSource <true|false>

useDataSource引数は、コマンドラインやAntタスクで、wsifDbBindingまたはwsifDbPort引数とともにのみ、指定できます。useDataSourceをこれらのいずれの引数もなしに指定した場合は、エラーがスローされます。

useDataSource引数により、dataSource引数の値をWSDLのportタグで使用するかどうかを決定します。useDataSourceを指定しないか、trueの値に指定した場合は、コマンドラインまたはAntタスクで使用したdataSource値がWSDLのportタグで使用されます。useDataSourcefalseの値に指定した場合は、コマンドラインまたはAntタスクで使用したdbConnection値がWSDLのportタグで使用されます。

wsifDbBinding

wsifDbBinding <true|false>

この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF SQLバインディングを追加する際に使用します。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF SQLバインディングが生成されます。この引数のデフォルト値はfalseです。

関連資料

  • wsifDbBinding引数がWSDLに追加する拡張の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「WSDLに対するWSIF SQL拡張」を参照してください。

  • WSIF SQLバインディングの定義をさらに細かく制御したり、複数のポートを指定したりできる引数の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数のデータベース・リソース・ポートに対するWSIFエンドポイントの構成」を参照してください。

 

wsifDbPort

wsifDbPort <true|false>

この引数は、ボトムアップ方式Webサービス・アセンブリで、複数のポートに対するデータベース・リソースのWSIFバインディングをWSDLに追加する際に使用します。使用できるのはAntタスクでのみです。

関連項目

wisfDbPortの使用方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数のデータベース・リソース・ポートに対するWSIFエンドポイントの構成」を参照してください。 

JMSアセンブリ引数

次の引数は、JMSエンドポイントWebサービスのEARまたはWARディレクトリをアセンブルするために、jmsAssembleコマンドで使用できます。

関連資料

 

次の引数の中で、replyToConnectionFactoryLocationreplyToQueueLocationsendConnectionFactoryLocationおよびsendQueueLocationは、JMSトランスポートでもJMSアセンブリでも使用できます。

deliveryMode

deliveryMode <String>

JMSDeliveryModeヘッダー・フィールドのデフォルト値を指定します。このフィールドの値が、メッセージの送信時に指定される配信モードになります。JMS仕様によってサポートされているdeliveryModeの値は、PERSISTENTおよびNON_PERSISTENTです。

genJmsPropertyHeader

genJmsPropertyHeader <true|false>

デフォルトでは、JMSエンドポイントWebサービスは、生成されるWSDLに定義されるSOAPヘッダーの、次のJMSメッセージ・プロパティを必ず公開します。

JMS固有ヘッダーおよびそのバインディングに対応するスキーマ定義は、WSDLに含まれます。この引数をfalseに設定すると、ワイヤSOAPメッセージのOracleJmsPropertiesが実行時に無視されます。デフォルト値はtrueです。

jmsTypeHeader

jmsTypeHeader <String>

この引数の値を使用して、JMSメッセージ用のJMSTypeヘッダー・フィールドのデフォルト値を指定します。JMSメッセージは、send操作によってJMS宛先に伝播されるメッセージです。jmsTypeHeaderの値には、たとえばMy Quote Messageを指定できます。デフォルト値はありません。

linkReceiveWithReplyTo

linkReceiveWithReply <true|false>

receive操作を返信先にリンクするかどうかを決定します。この引数をtrueに設定した場合は、受信先/受信コネクション・ファクトリまたは返信先/返信コネクション・ファクトリのいずれかを設定する必要があります。デフォルト値はfalseです。

payloadBindingClassName

payloadBindingClassname <String>

データ・バインディングが使用されていない場合は、javax.jms.ObjectMessageインスタンスのコンテンツ・オブジェクトの完全修飾Javaクラス名です。このコンテンツはJava値タイプではなく、XMLフラグメントです。有効な値はjava.lang.Stringjavax.xml.soap.SOAPElementのみです。デフォルト値はjava.lang.Stringです。

priority

priority <int>

JMSメッセージのJMSメッセージ優先度ヘッダー・フィールドのデフォルトの整数値を指定します。JMSメッセージは、send操作によってJMS宛先に伝播されるメッセージです。0〜9の値を指定できます。0が優先度最低、9が最高になります。

receiveConnectionFactoryLocation

receiveConnectionFactoryLocation <String>

receive操作に使用されるJMS ConnectionFactoryのJNDI名。ConnectionFactoryのタイプは、receive宛先との整合性が必要とされます。デフォルト値はありません。

receiveQueueLocation

receiveQueueLocation <String>

receive操作に使用されるJMSキューのJNDI名。receiveQueueLocationreceiveTopicLocation引数は相互排他的で、一緒に設定することはできません。デフォルト値はありません。

receiveTimeout

receiveTimeout <int>

この引数の値を使用して、メッセージ取得のためにreceiveメソッドがブロックされる時間のデフォルト値を指定します。receiveTimeout値は秒単位で表します。デフォルト値は0です。つまり、ブロックは失効せず、コールは無期限にブロックされます。

receiveTopicLocation

receiveTopicLocation <String>

receive操作に使用するJMSトピックのJNDI名。デフォルト値はありません。receiveQueueLocationreceiveTopicLocation引数は相互排他的で、一緒に設定することはできません。

replyToConnectionFactoryLocation

replyToConnectionFactoryLocation <String>

すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSコネクション・ファクトリのJNDI名を指定します。ConnectionFactoryのタイプは、返信先との整合性が必要とされます。デフォルト値はありません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。

JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するすべてのWebサービス操作のデフォルトの返信先として使用するJMS ConnectionFactoryのJNDI名を指定します。

replyToQueueLocation

replyToQueueLocation <String>

すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSキューのJNDI名を指定します。デフォルト値はありません。replyToQueueLocationreplyToTopicLocation引数は相互排他的で、一緒に設定することはできません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。

JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するすべてのWebサービス操作のデフォルトの返信先として使用するJMSキューのJNDI名を指定します。

replyToTopicLocation

replyToTopicLocation <String>

すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSトピックのJNDI名を指定します。デフォルト値はありません。replyToQueueLocationreplyToTopicLocation引数は相互排他的で、一緒に設定することはできません。

sendConnectionFactoryLocation

sendConnectionFactoryLocation <String>

JMS send操作のためのコネクションの取得に使用するJMS ConnectionFactoryのJNDI名を指定します。ConnectionFactoryのタイプは、send宛先との整合性が必要とされます。デフォルト値はありません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。

JMSトランスポートにこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するWebサービス操作のコネクションの取得に使用するJMS ConnectionFactoryのJNDI名を指定します。

sendQueueLocation

sendQueueLocation <String>

JMS send操作に使用するJMSキューのJNDI名を指定します。デフォルト値はありません。sendQueueLocationsendTopicLocation引数は相互排他的で、一緒に設定することはできません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。

JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するWebサービス操作に使用するJMSキューを指定します。

sendTopicLocation

sendTopicLocation <String>

send操作に使用するJMSトピックのJNDI名。デフォルト値はありません。sendQueueLocationsendTopicLocation引数は相互排他的で、一緒に設定することはできません。

timeToLive

timeToLive <int>

この引数の値には、JMS send操作のデフォルトのtime-to-live(TTL)値を指定します。timeToLiveの値は秒単位で表し、相対値です。絶対値ではありません。メッセージの送信時に、その有効期限がJMS sendメソッドに指定されたTTL値と現行グリニッジ標準時(GMT)の値の合計として算定されます。この引数を設定しないか0に設定した場合は、メッセージは失効しません。

topicDurableSubscriptionName

topicDurableSubscriptionName <String>

この引数の値を一意のIDとして使用し、トピックのreceive操作の永続サブスクリプションを登録します。デフォルト値はありません。

関連資料

永続サブスクリプションの詳細は、JMS仕様を参照してください。

http://java.sun.com/products/jms/docs.html 

プロキシ引数

この引数を使用して、生成されるプロキシ・コードの内容を制御できます。

endpointAddress

endpointAddress <URL>

Webサービスへの接続に使用するエンドポイント・アドレスのURLを指定します。この引数を使用すると、WSDLのエンドポイント・アドレスは無視されます。

genJUnitTest

genJUnitTest <true|false>

genJUnitTesttrueに設定すると、Webサービス内の公開対象メソッドごとにJunitテストが作成され、サービス・エンドポイント・インタフェースと同じディレクトリに格納されます。作成されたJunitテストはテンプレートにすぎません。メソッドに実際のテスト・コードを供給する必要があります。デフォルト値はfalseです。

デプロイメント・ディスクリプタ引数

Webサービスのデプロイの実行方法の制御には、次の引数を使用できます。

appendToExistingDDs

appendToExistingDDs <true|false>

新しいWebサービスのエントリを既存のデプロイメント・ディスクリプタに追加するのかまたはそれらを上書きするのかを設定します。この引数によって影響されるデプロイメント・ディスクリプタは、oracle-webservices.xmlweb.xmlおよびwebservices.xmlです。

この引数をtrueに設定すると、出力位置のデプロイメント・ディスクリプタはすべて、新しいサービスに必要なエントリで更新されます。falseの場合、出力位置に既存のデプロイメント・ディスクリプタはすべて上書きされます。デフォルト値はfalseです。

関連項目

appendToExistingDDsを使用して新しいWebサービスを既存のデプロイメント・ディスクリプタに追加する方法は、「EARまたはWARアーカイブへの複数のWebサービスの割当て方法」を参照してください。  


注意

appendToExistingDDsddFileName引数は、呼出しまたはAntタスクの中で一緒に使用できます。ddFileName引数は、管理構成を格納するファイルを指します。デプロイメント・ディスクリプタを生成するサービスに対応する、このファイル内にあるすべての管理構成は、生成されるoracle-webservices.xmlファイルに組み込まれます。appendToExistingDDsfalseに設定すると(デフォルト)、出力ディレクトリ内のデプロイメント・ディスクリプタ・ファイル(web.xmloracle-webservices.xmlまたはwebservices.xml)がすべて上書きされます。appendToExistingDDstrueに設定すると、WebServicesAssemblerにより、最新サービスのエントリが既存のデプロイメント・ディスクリプタ・ファイルに追加されます。

WebServicesAssemblerでは競合を解決しようとはしません。同じサービスを2回デプロイメント・ディスクリプタ・ファイルに追加すると、無効なデプロイメント・ディスクリプタになります。 


context

context <String>

Webアプリケーションのルート・コンテキストを指定します。contextには空の文字列は指定できません。contextに値を指定しなかった場合、そのデフォルト値は次のように決定されます。

バージョン2.1 EJBの場合、contextの値は、oracle-webservices.xmlデプロイメント・ディスクリプタ・ファイル内の<context-root>要素に格納されます。

Webアプリケーションの場合、contextの値は、application.xmlデプロイメント・ディスクリプタ・ファイル内の<context-root>要素に格納されます。

URLはプロトコル、ホストおよびポートを基に作成します。たとえば、次のようになります。

http://localhost:8888/host/port

プロトコルhttp://localhost:8888/はデプロイ時に設定され、Webサービスへの接続に使用されます。2番目の部分であるhostは、context引数によって指定されます。3番目の部分であるportは、uri引数によって指定されます。すなわち、URL全体は、プロトコルをcontextおよびuri引数の値と連結することで作成されます。

関連項目

contextおよびuri引数を使用してHTTP URLを作成する例については、「uri」を参照してください。 

ddFileName

ddFileName <String>

Webサービスに割り当てる設定を含んだoracle-webservices.xmlデプロイメント・ディスクリプタを指定します。この引数を使用しなかった場合は、oracle-webservices.xmlデプロイメント・ディスクリプタが生成されます。

*Assembleコマンドでこの引数を使用すると、管理およびカスタム・シリアライズの情報が指定されたファイルからアーカイブ内のoracle-webservices.xmlファイルにコピーされます。

WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。

appendToExistingDDsddFileName引数は、コマンドライン呼出しまたはAntタスクの中で一緒に使用できます。

関連項目

 

uri

uri <String>

Webサービスに使用するURIを指定します。これは、Webサービスへの接続に使用するURLの3番目の部分です。最初の部分はプロトコルで、デプロイ時に設定されます。2番目の部分は、context引数によって指定されます。すなわち、URL全体は、プロトコル、コンテキストおよびuriの各引数を連結することで作成されます。

uriのデフォルト値はappName引数の値です。uriには空の文字列は指定できません。

この引数を使用すると、<url-pattern>要素がweb.xmlに(Webアプリケーションの場合)、または<endpoint-address-uri>要素がoracle-webservices.xml(EJB 2.1の場合)に追加されます。

WSDLアクセス引数

WSDLのアクセスに使用できる引数は、次のとおりです。WSDLがURLでありHTTPプロキシ・サーバーを使用するネットワーク上にある場合、Http*で始まる引数はWSDLへのアクセスに役立ちます。

fetchWsdlImports

fetchWsdlImports <true|false>

WSDLとそれにインポートされるものすべてについてローカル・コピーを作成するかどうかを指定します。fetchWsdlImportstrueに設定すると、指定したWSDLとそれにインポートされるものすべてがWARにコピーされます。falseの場合は、指定したWSDLのみがWARにコピーされます。デフォルト値はfalseです。

この引数は、通常、デプロイに伴ってWSDLをパッケージ化する必要があるときに使用されます。これにより、各ランタイム呼出しに対するコールアウトでリモート・スキーマが必要とされる場合に発生する可能性のあるオーバーヘッド、信頼性の欠如、セキュリティ、変更の脅威に関する問題が回避されます。WebサービスにWSDLとそのスキーマ・インポートをパッケージ化するのは、トップダウン方式でのアセンブリの場合のみです。

httpNonProxyHosts

httpNonProxyHosts <String>

HTTPプロキシを使用しないホストの名前を指定します。ホストが複数ある場合は、「|」で区切ります。たとえば、localhost|127.0.0.1のようになります。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。

httpProxyHost

httpProxyHost <String>

HTTPプロキシ・ホストの名前を指定します。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。

httpProxyPort

httpProxyPort <int>

HTTPプロキシのポート番号を指定します。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。

importAbstractWsdl

importAbstractWsdl <true|false>

wsdl引数で指定されたWSDLを、生成されるWSDLにインポートするかどうかを指定します。trueの場合、WSDLファイルが、生成されるWSDLにインポートされます。falseの場合は、生成されるWSDLの要素と元のWSDLの要素が単一の出力ファイルに書き込まれます。デフォルト値はfalseです。

wsdl

wsdl <String>

WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。たとえば、http://host:80/services/myservice?WSDLmyservice.wsdlがこの引数に対する有効な値です。

ネットワークでHTTPプロキシ・サーバーが使用されており、WSDLがURLである場合は、必要に応じて、httpNonProxyHostshttpProxyHostおよびhttpProxyPortの各引数を設定します。

WSDL管理引数

生成されるWSDLの内容の制御には、次のオプションを使用できます。

createOneWayOperations

createOneWayOperations <true|false>

この引数をtrueに設定すると、voidを戻すメソッドがレスポンス・メッセージを持たなくなります。指定しないかfalseに設定すると、レスポンス・メッセージは空になります。デフォルト値はfalseです。

genQos

genQos <true|false>

サービスのクオリティ(QOS)情報を機能アサーションの形式でWSDLに追加するかどうかを決定します。機能アサーションは、oracle-webservices.xmlデプロイメント・ディスクリプタ内のWebサービス管理構成から導出されます。genQostrueに設定すると、機能アサーションがWSDL内に生成されます。また、Webサービス管理構成を格納するoracle-webservices.xmlデプロイメント・ディスクリプタに、ddFilename引数を設定することも必要です。この引数のデフォルト値はfalseです。

関連資料

Webサービスのサーバー・サイドおよびクライアント・サイドへの機能アサーションの提供方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「機能アサーションの使用」を参照してください。 

qualifiedElementForm

qualifiedElementForm <true|false>

WSDL内にある各生成済スキーマのelementFormDefault要素が、qualifiedまたはunqualifiedのどちらに設定されているかを判別します。

elementFormDefault要素の値は、ローカルに宣言されている要素を、インスタンス・ドキュメント内ではターゲット名前空間で修飾する必要があるかどうかを示します。この要素の値がunqualifiedである場合は、ローカルに宣言された要素をターゲット名前空間で修飾することはできません。値がqualifiedである場合は、ローカルに宣言された要素をターゲット名前空間で修飾する必要があります。

elementFormDefault要素の値をunqualifiedに設定するには、qualifiedElementForm引数をfalseに設定します。要素の値をqualifiedに設定するには、引数をtrueに設定します。qualifiedElementForm引数のデフォルト値はtrueです。

singleService

singleService <true|false>

WSDL内に定義された各サービスに対して単一ポートを生成するのか複数ポートを生成するのかを決定します。trueの場合は、WebServicesAssemblerにより、複数のポートに対して単一のサービス(ポート・タイプごとに1つのサービス)が生成されます。falseの場合は、WebServicesAssemblerにより、複数のサービス、すなわち単一ポートごとに1つのサービスが生成されます。デフォルトはfalseです。

soapVersion

soapVersion <1.1|1.2|1.1,1.2>

WSDLドキュメントに対するSOAPのバージョンを指定します。使用可能な値は、1.11.2または1.1,1.2です。デフォルト値は1.1です。

1.1,1.2は、WebServicesAssemblerが2つのバインディングとともに2つのポートを作成することを意味します。1つのポートとバインディングがバージョン1.1をサポートし、もう1つのポートとバインディングがバージョン1.2をサポートします。各ポートは異なるURLにバインドする必要があります。つまり、同じURLアドレスを使用して両方のバージョンを同時にサポートすることはできません。

targetNamespace

targetNamespace <String>

生成されるWSDL内に使用するターゲット名前空間を指定します。

targetNamespaceの値は、仕様に準拠しているHTTP URL、準拠していないHTTP URL、またはURIであってもかまいません。targetNamespaceの値は、次のようにしてパッケージ名にマップされます。

ベスト・コーディング・プラクティスのためには、次の推奨事項に従ってください。

typeNamespace

typeNamespace <String>

生成されるWSDL内のスキーマ型に使用する型名前空間を指定します。指定した名前は必ず使用され、破棄されません。

関連項目

この引数とデフォルトの名前空間/パッケージ名マッピング規則の詳細は、「ターゲットWSDL名前空間とパッケージ名のマッピングのデフォルト・アルゴリズム」を参照してください。 

wsdlTimeout

wsdlTimeout <int>

WebServicesAssemblerがリモートWSDLリソースのHTTPまたはHTTPSリクエストへのレスポンスを待機する上限秒数を指定します。デフォルト値は60秒です。

WebServicesAssemblerでは、デフォルトで、ホストからWSDL定義を求めるHTTPリクエストへのレスポンスを受け取るのを1分間待機します。この引数を使用して、デフォルトの上限待機時間を上書きできます。値0は、WebServicesAssemblerがプラットフォームによって設定される時間の間、待機するように指定します。

この引数は、HTTPまたはHTTPSを使用して行われたリクエストに対してのみ適用されます。リクエストが別のプロトコルを使用して行われている場合は無視されます。

メッセージ書式引数

生成されるWSDL、つまりWebサービスによって使用されるメッセージ書式の制御には、次の引数を使用できます。

mtomSupport

mtomSupport <true|false>

ボトムアップ方式またはトップダウン方式のWebサービス・アセンブリに対し、この属性は、適切な内容(base64binary)のメッセージをMTOM書式の添付ファイルとしてエンコードするかどうかを指定します。この属性のデフォルト値はfalseです。

この属性を使用すると、<mtom-support>要素がoracle-webservices.xmlファイルに追加されます。


注意

この属性は、assemblegenProxyおよびtopDownAssembleの各Antタスクのみと一緒に使用できます。WebServicesAssemblerコマンドラインの引数としては使用できません。  


関連資料

この引数の使用方法の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』のMTOMエンコードの添付ファイルの処理に関する項を参照してください。  

style

style <document-bare|document-wrapped|rpc>

ボトムアップ方式Webサービス・アセンブリの場合、この引数により、生成されるWSDL内のメッセージ書式のstyle属性が指定されます。可能な値は、document-baredocument-wrappedおよびrpcです。デフォルト値はdocument-wrappedです。

関連項目

rpcとdocument(wrappedおよびbare)メッセージ・スタイルの詳細は、「OracleAS Web Servicesのメッセージ書式」を参照してください。 

use

use <literal|encoded>

ボトムアップ方式Webサービス・アセンブリの場合、この引数により、生成されるWSDL内のメッセージ書式のuse属性が指定されます。可能な値は、literalおよびencodedです。デフォルト値はliteralです。

関連項目

メッセージの使用方法であるliteralとencodedの詳細は、「OracleAS Web Servicesのメッセージ書式」を参照してください。 

Java生成引数

Javaファイルの生成方法の制御には、次のオプションを使用できます。

dataBinding

dataBinding <true|false>

trueの場合、WebServicesAssemblerでは、スキーマ内の全要素に対して、JAX-RPCデフォルト・タイプ・マッピング規則に従うJava値タイプを生成しようとします。WebServicesAssemblerではサポートしていないタイプを検出した場合、javax.xml.soap.SOAPElementを使用してそのタイプを表現します。falseの場合、WebServicesAssemblerでは、検出したすべてのスキーマ型に対してSOAPElementを使用します。デフォルト値はtrueです。


注意

OracleAS Web Servicesは、rpc-encodedメッセージ書式とdatabinding=falseの組合せはサポートしていません。この組合せは業界内ではベスト・プラクティスとみなされていないためです。 


mapHeadersToParameters

mapHeadersToParameters <true|false>

生成されるJavaコード内の各メソッド用のパラメータに、WSDLで定義されているSOAPヘッダーをマップするかどうかを指定します。デフォルト値はtrueです。

overwriteBeans

overwriteBeans <true|false>

クラスパスにクラスがすでに存在する場合でも、スキーマ型用にBeanを生成するかどうかを指定します。デフォルト値はfalseです。

unwrapParameters

unwrapParameters <true|false>

この引数はdocument-literal操作に対してのみ設定でき、その他のメッセージ書式では無視されます。通常、document-literal操作には、単一入力スキーマ型と単一出力スキーマ型があります。これらのスキーマ型はラッパーとも呼ばれます。unwrapParametersfalseに設定すると、生成対象のサービス・エンドポイント・インタフェースが、入力パラメータおよび戻り型をラップするラッパーとともに生成されます。たとえば、ラップされたパラメータのあるメソッドは次のようになります。

public EchoResponse echo(EchoRequest p) throws RemoteException;

unwrapParameterstrueに設定すると(デフォルト)、戻り型とレスポンス・タイプがアンラップされます。通常はこの方が使いやすくなります。特にタイプが単純な場合はそうです。たとえば、アンラップされたパラメータのあるメソッドは次のようになります。

public String echo(String string) throws RemoteException;

valueTypeClassName

valueTypeClassName <String>

java.util.Collectionおよびjava.util.Mapに使用されるJAX-RPC値タイプの完全修飾クラス名を指定します。この引数により、サービス・エンドポイント・インタフェースによって直接参照されないこれらのクラスのスキーマを生成できます。

関連項目

valueTypeClassNameを使用してMapまたはCollectionにアイテムとして非組込み値タイプを宣言する例は、「Oracle固有の型のサポート」を参照してください。  

valueTypeClassName引数は、コマンドラインまたはAntタスクで複数回使用できます。Antタスクでは、複数のタグとして書き込み、name属性を使用します。例18-4に、valueTypeClassNameの複数インスタンスを使用してtClass1tClass2およびtClass3タイプ・クラスのスキーマを生成する方法を示します。

例18-4    AntタスクにおけるvalueTypeClassNameの複数のインスタンス

<oracle:assemble appName="myService" 
   output="build"
   input="myservice.jar"
   style="rpc"
   use="encoded">
            <oracle:porttype
              interfaceName="com.myCompany.myService.Hello"
              className="com.mycompany.HelloImpl"/> 
            <oracle:valueTypeClassName name="tClass1"/>
            <oracle:valueTypeClassName name="tClass2"/>
            <oracle:valueTypeClassName name="tClass3"/>
</oracle:assemble>

valueTypePackagePrefix

valueTypePackagePrefix <String>

WSDLから生成するすべての値タイプのパッケージ名の接頭辞を指定します。この引数により、値タイプ・パッケージ名をサービス別にグループ化できます。

すべての値タイプ・クラスが、指定されたパッケージ名で開始されるようになります。値タイプのパッケージ名は、デフォルトで、スキーマの複合型の名前空間に基づいて付けられます。この引数を使用すると、名前空間から導出されたパッケージ名に接頭辞を付けられます。

たとえば、valueTypePackagePrefixmyappに設定し、型のターゲット名前空間がhttp://ws-i.org/である場合、パッケージ名はmyapp.org.ws-iになります。

WSDL名前空間のJavaパッケージへのマッピングをより詳細に制御するには、JAX-RPCマッピング・ファイルを使用します。名前空間のパッケージへのマッピングがJAX-RPCマッピング・ファイルに定義されている場合は、valueTypePackagePrefix引数は無視されます。

関連項目

 

wsifEjbBinding

wsifEjbBinding <true|false>

この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF EJBバインディングを追加する際に使用します。trueの場合は、EJBホーム・インタフェースclassNameおよびjndiNameを指定する必要もあります。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF EJBバインディングが生成されます。デフォルト値はfalseです。

関連項目

  • wsifEjbBinding 引数がWSDLに追加する拡張の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「WSDLに対するWSIF EJB拡張」を参照してください。

  • WSIF EJBバインディングの定義をさらに細かく制御したり、複数のポートを指定したりできる引数の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数のEJBポートに対するWSIFエンドポイントの構成」を参照してください。

 

wsifEjbBindingwsifJavaBindingおよびwsifDbBinding引数は、相互排他的です。1つのコマンドラインまたはAntタスクでこれらの引数が2つ以上使用されると、例外がスローされます。

wsifJavaBinding

wsifJavaBinding <true|false>

この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF Javaバインディングを追加する際に使用します。trueの場合は、Java実装クラスのclassNameを指定する必要もあります。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF Javaバインディングが生成されます。デフォルト値はfalseです。

関連項目

  • この引数がWSDLに追加する拡張の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「WSDLに対するWSIF Java拡張」を参照してください。

  • WSIF Javaバインディングの定義をさらに細かく制御したり、複数のポートを指定したりできる引数の詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「複数のJavaポートに対するWSIFエンドポイントの構成」を参照してください。

 

wsifEjbBindingwsifJavaBindingおよびwsifDbBinding引数は、相互排他的です。1つのコマンドラインまたはAntタスクでこれらの引数が2つ以上使用されると、例外がスローされます。

名前競合の解決

WSDL 1.1仕様では、様々な要素定義が、WSDLドキュメントの特定の名前空間内で同じ名前を持つことが許されています。このため、WSDLからJavaへのマッピングの際に、名前の競合が発生する可能性があります。

JAX-RPC仕様の4.3.12項では、マッピングされたJava識別子に接尾辞を追加することで名前の競合を解決するルールの概要が指定されています。次のコマンドは、Javaファイルを生成するときにこのルールを利用しています。

参考までに、JAX-RPC仕様の内容を表18-5に示します。ここでは、WSDLからJavaへのマッピングで名前の競合を防ぐためのルールと接尾辞が指定されています。名前の競合がない場合は、これらの接尾辞を使用する必要はありません。

表18-5    名前競合のルール 
WSDL/XMLからマッピングされたJavaの定義  マッピングされたJava識別子に付加される接尾辞   

xsd:simpleTypeまたはxsd:complexTypeの名前から名前が導出される、WSDL/XMLに基づくJavaクラスからJava型へのマッピング 

_Type 

XML: <xsd:complexType name="shared">

Java: Shared_Type.java 

Java列挙クラス(JAX-RPC仕様の4.2.4項を参照) 

_Enumeration 

XML:

<xsd:simpleType name="shared">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="foo"/>
</xsd:restriction>
</xsd:simpleType>

Java: Shared_Enumeration.java 

xsd:elementの名前から名前が導出される、WSDL/XMLに基づくJavaクラスからJava型へのマッピング 

_Element 

XML: <xsd:element name="shared">

Java: Shared_Element.java 

サービス・エンドポイント・インタフェース 

_PortType 

XML: <wsdl:portType name="shared">

<wsdl:binding name="shared"...>

Java: service endpoint interface: Shared_PortType.java 

生成されたサービス・インタフェース 

_Service 

XML: <wsdl: service name="shared" ... >

Java: Shared_Service.java 

例外クラス 

_Exception 

Java: Shared_Exception.java 

ターゲットWSDL名前空間とパッケージ名のマッピングのデフォルト・アルゴリズム

次の各項では、WebServicesAssemblerにより名前空間とパッケージ名のマッピングに使用されるデフォルト・アルゴリズムについて説明します。

Javaパッケージ名とWSDL名前空間のマッピングのアルゴリズム

WebServicesAssemblerでは、パッケージ名からデフォルトの型名前空間が構成されます。パッケージ名が標準の最上位のドメイン名または国際標準化機構(ISO)の国コードで始まる場合は、WebServicesAssemblerによりパッケージ名が前後逆になり、HTTP URL内に配置されます。そうでない場合は、パッケージ名がそのままHTTP URL内に配置されます。


注意

標準の最上位のドメイン名は、Internet Corporation For Assigned Names and Numbers(ICANN)(http://www.icann.org/tlds/)によって策定されています。

ISOの国コードは、国際標準化機構(http://www.iso.org/iso/en/ISOOnline.frontpage)によって策定されています。  


たとえば、パッケージcom.oracle.mytypesの型名前空間は、http://mytypes.oracle.com/になります。パッケージexamples.chapter1に対する型名前空間は、http://examples.chapter1/になります。

次の各項では、WebServicesAssemblerのマッピング・アルゴリズムがJavaのアーチファクトと型をWSDLアーチファクトとXMLスキーマ型にマッピングする手順について説明します。

JavaアーチファクトのWSDLアーチファクトへのマッピング

次の手順により、JavaアーチファクトがWSDLアーチファクトにマッピングされます。

  1. 生成されたWSDL内で使用されているターゲット名前空間を、WebServicesAssembler引数のtargetNamespaceの値によって取得します。この引数の詳細は、「targetNamespace」を参照してください。

  2. JAX-RPCマッピング・ファイルで、Java <package-mapping>要素の値を参照します。

  3. サービス・エンドポイント・インタフェースのJavaパッケージ名から、WSDL名前空間の名前を導出します。

Java型のXMLスキーマ型へのマッピング

次の手順により、Java型がXMLスキーマ型にマッピングされます。

  1. JAX-RPCマッピング・ファイルで、Java <package-mapping>要素の値を参照します。

  2. 生成されたWSDLにあるスキーマ型の型名前空間を、WebServicesAssembler引数のtypeNamespaceの値によって取得します。この引数の詳細は、「typeNamespace」を参照してください。

  3. 値タイプのJavaパッケージからWSDL名前空間を導出します。

  4. WSDLに定義されているtargetNamespace属性の値を使用します。

WSDL名前空間のJavaパッケージ名へのマッピングのアルゴリズム

WSDL名前空間のJavaパッケージ名へのマッピングは、Java Architecture for XML Data Binding (JAXB)仕様のバージョン2.0のアルゴリズムに基づいています。この仕様については、次のWebサイトを参照してください。

http://www.jcp.org/en/jsr/detail?id=222/

この仕様に定義されているアルゴリズムに対する例外は、次のとおりです。

表18-6に、パッケージ名の名前空間へのマッピングの例をいくつか示します。

表18-6    名前空間のパッケージ名へのマッピングの例 
名前空間  パッケージ名 

http://army.mil/ 

mil.army 

http://oracle/j2ee/ws_example/ 

oracle.j2ee.ws_example 

http://somecompany.jp/ 

jp.somecompany 

http://toplink.oracle.com 

com.oracle.toplink 

http://www.acme.com/go/espeak.xsd 

com.acme.go.espeak 

urn:dime/types.xsd 

dime.types_xsd 

次の各項により、サービス・エンドポイント・インタフェースまたは値タイプ、およびWSDL内のこれらの各関連アーチファクトがJava名およびJava型にマッピングされます。

WSDLのサービス・エンドポイント・インタフェースおよび関連エンドポイント・アーチファクトのJavaパッケージおよびクラス名へのマッピング

次の手順により、WSDLのサービス・エンドポイント・インタフェースおよび関連アーチファクトがJava名にマッピングされます。

  1. サービス・エンドポイント・インタフェースの場合は、JAX-RPCマッピング・ファイルで<service-interface-mapping>要素の値を参照します。このファイルの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。

  2. 生成されたクラスのJavaパッケージ名を、WebServicesAssembler引数のpackageNameの値によって取得します。この引数の詳細は、「packageName」を参照してください。

  3. JAX-RPCマッピング・ファイルで、<package-mapping>要素の値を参照します。

  4. WSDL名前空間からJavaパッケージ名を導出します。

WSDLの値タイプおよび関連アーチファクトのJava名およびJava型へのマッピング

次の手順により、WSDLの値タイプおよびその関連アーチファクトがJava名およびJava型にマッピングされます。

  1. JAX-RPCマッピング・ファイルで、<java-xml-type-mapping>要素を参照します。このファイルの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。

  2. スキーマ型がターゲット・ドキュメント(WSDLまたはスキーマ)のtargetNamespaceと同じ名前空間で定義されている場合は、WebServicesAssemblerのpackageName引数の値を使用します。この引数の詳細は、「packageName」を参照してください。

  3. JAX-RPCマッピング・ファイルで、Java <package-mapping>要素の値を参照します。

  4. WSDL名前空間とWebServicesAssemblerのvalueTypePackagePrefix引数の値からJavaパッケージ名を導出します(「valueTypePackagePrefix」を参照)。この引数の詳細は、「ルート・パッケージ名の指定方法」も参照してください。

名前空間の指定方法

名前空間を明示的に指定するには、typeNamespace引数を使用します。指定した名前は必ず使用され、破棄されません。

ルート・パッケージ名の指定方法

valueTypePackagePrefix引数を使用すると、指定したWSDLのスキーマにあるすべての型のルート・パッケージ名を指定できます。すべてのパッケージ名が、この値で開始されるようになります。指定された値が使用されるのは、JAX-RPCマッピング・ファイルに型名前空間とパッケージのマッピングが宣言されていない場合にかぎります。

生成されるパッケージ名が同じ値で始まる場合は、この値はパッケージ名には追加されません。これにより、com.oracle.mytypes. com.oracle.mytypesのようなパッケージが避けられます。

データベース接続の確立方法

aqAssembledbJavaAssembleplsqlAssembleおよびsqlAssembleコマンドでは、Webサービスの生成にデータベース接続が必要です。Webサービスのアセンブリ時および実行時に、データベースへの接続が行われることがあります。Webサービスのアセンブリ時では、WebServicesAssemblerにより、PL/SQLパッケージやAQキューなどのデータベース・エンティティに関する情報を取得するためにデータベースへの接続が行われます。Webサービスの実行時では、ユーザー・アプリケーションにより、データソースJNDI位置が使用され、データベース操作用にJDBC接続が取得されます。この情報は、WebServicesAssemblerにより、確実にWebサービス・ランタイム・コードに提供されます。

次の引数を使用すると、Webサービスに接続情報を提供できます。

アセンブリ時および実行時にデータベースにアクセスするには、コマンドラインまたはAntタスクでdataSource引数かdbConnectiondbUserの組合せを使用します。

WebServicesAssemblerの追加Antサポート

この項では、Antタスクを通じてWebServicesAssemblerで使用可能なその他の機能について説明します。この機能は、WebServicesAssemblerコマンドラインでは使用できません。

Antにおける引数の複数インスタンスの使用方法

WebServicesAssemblerコマンドの次の引数は、コマンドラインまたはAntタスクで複数回宣言できます。

Antタスクでは、これらの引数の複数のインスタンスを別個のタグとしてリストする必要があります。別個のタグとしてリストする際、inputschemaおよびsqlstatement引数にはvalue属性が必要になります。valueTypeClassName引数ではname属性が必要となります。

たとえば、次のassembleコマンドでは、input引数の複数インスタンスを使用して、first.jarsecond.jarおよびthird.jarが含まれるEARファイルが生成されます。

<oracle:assemble  
          appName="myService"
          output="build">
             <oracle:PORTTYPE
               interfaceName="com.myCompany.myService.Hello"
               className="com.mycompany.HelloImpl">
             </oracle:porttype>
             <oracle:input value="first.jar"/>
             <oracle:input value="second.jar"/>
             <oracle:input value="third.jar"/>
</oracle:assemble>

次のjmsAssembleコマンドでは、valueTypeClassName引数の複数インスタンスを使用して、JAX-RPC値タイプのクラス名を指定しています。これらのクラス名は、java.util.Collectionおよびjava.util.Mapの中のアイテムにできます。

<oracle:jmsAssemble 
       linkReceiveWithReplyTo="true"
       targetNamespace="http://oracle.j2ee.ws/jms-doc"
       typeNamespace="http://oracle.j2ee.ws/jms-doc/types"
       serviceName="JmsService" 
       appName="jms_service" 
       context="jms_service"
       input="./demo/build/mdb_service.jar" 
       output="./demo/dist" 
       >
         <oracle:valueTypeClassName name="tClass1"/>
         <oracle:valueTypeClassName name="tClass2"/>
         <oracle:valueTypeClassName name="tClass3"/>
</oracle:jmsAssemble>

Antタスクでのプロキシ生成の構成方法

proxyサブタグにより、サーバー・コードのアセンブリと同時にクライアント・プロキシを生成できます。WSDLの名前が必ずしも事前に認識されないボトムアップ方式アセンブリ時には、これが最も便利です。Antタスク内でproxyサブタグを使用できるのは、次のコマンドに対してです。

proxyサブタスクには、genProxy WebServicesAssemblerコマンドに類似した機能があります。サポートされているgenProxy引数は、wsdlを除いてどれも、proxyサブタグで属性として使用できます。

output引数は属性としてサポートされていますが、genProxyで使用される場合とは異なり、必須ではありません。outputproxyサブタグに指定しなくても、親タグで指定されたoutputの値が、src/proxyディレクトリ・パスの前に追加されて使用されます。たとえば、親タグでoutput="build"が設定されている場合、proxyサブタグの出力はbuild/src/proxyに格納されます。

次の引数をproxyサブタグの属性として使用できます。

例18-5に、packageName属性を付けた<proxy>サブタグの使用例を示します。この例では、assembleを親タグとして使用しています。

例18-5    Antタスクでのproxyサブタグの使用方法

<oracle:assemble...>   (or any command that supports the proxy tag)
  <oracle:proxy packageName="myproxy"/>
</oracle:assemble>

プロキシへのハンドラ情報およびポート情報の生成方法

<handler>および<port>タグを使用して、メッセージ処理情報およびポート固有情報をプロキシに追加できます。

Antタスクでのポートの構成方法

ポートは、Webサービスをホストするエンドポイントのネットワーク・アドレスを識別します。一部のWebServiceAssemblerコマンドでは、Antタスクでportタグを子として指定できます。これにより、ポートごとに異なる構成を持つことができるようになります。たとえば、2種類のトランスポートや2種類のSOAPバージョンを割当てできます。

次のAntタスクには、portタグを指定できます。

portタグでは次の引数を使用できます(注意: Antタスクのコンテキストでは、引数は「属性」と呼ばれます)。

portタグでは、これらの引数以外に、name引数も指定できます。この引数には、ポート名のローカル部分を指定します。

portタグ内では、各コマンドのオプションの引数は指定してもしなくてもどちらでもかまいません。各コマンドでは、様々な引数サブセットがサポートされています。特定のコマンドで使用できる引数のリストについては、そのコマンドの「追加Antサポート」の項を参照してください。

例18-6に、portタグを使用して様々なポートにJMSおよびHTTPトランスポートを指定する方法を示します。HTTPトランスポート用のport宣言ではname属性を使用していることに注意してください。name属性は、Antタスクでportを1つのみ指定する場合にはオプションです。Antタスクで複数のportタグを指定する場合は、name属性が必要です。

例18-6    様々なポートへの各種トランスポートの割当て

<oracle:port
      uri="/echo"
      sendQueue="jms/senderQueue"
      sendConnectionFactoryLocation="jms/senderQueueConnectionFactory"
      replyToConnectionFactoryLocation="jms/receiverQueueConnectionFactory"
      replyToQueue="jms/receiverQueue"/>
<oracle:port uri="echo2" name="EchoHttpPort"/>

例18-7に、portタグを使用して様々なポートに各種SOAPメッセージ・バージョンを指定する方法を示します。同じAntタスクに複数のポートを指定する場合は、各portタグでname属性が必須になります。

例18-7    様々なポートへの各種SOAPメッセージ・バージョンの割当て

<oracle:assemble 
   ...
      <oracle:port uri="soap11" soapVersion="1.1" name="httpSoap11Port" />
      <oracle:port uri="soap12" soapVersion="1.2" name="httpSoap12Port" />
   ...
/>

Antタスクでのポート・タイプの構成方法

一部のAntタスクでは、子タスクとしてporttypeタグを指定できます。これにより、Webサービスへのインタフェースを複数の種類、構成できます。これらのWebServicesAssemblerコマンドのAntタスクでは、porttypeを、子タスクとして指定できます。

porttypeタグでは、Webサービスのインタフェースを指定するためのinterfaceName引数が必須になります。複数の<porttype>タグを指定する場合、各タグには<port>サブタグが含まれている必要があります。

関連項目

portタグの詳細は、「Antタスクでのポートの構成方法」を参照してください。 

assembletopDownAssemblegenDDsおよびgenWsdlコマンドでporttypeを構成するときは、className属性を指定する必要があります。assembleおよびtopDownAssembleコマンドの場合は、className属性ではなくclassFileName属性を指定します。

また、WSDLに複数のポート・タイプの参照が含まれている場合は、topDownAssembleコマンドでは、ポート・タイプごとに<porttype>タグを指定する必要があります。

表18-7に、<porttype>タグで使用できる有効な属性とサブタグをまとめます。

表18-7    <porttype>タグの属性とサブタグ 
属性とサブタグ  説明 

classFileName属性 

この属性は、classNameが指定されていない場合に、assembleおよびtopDownAssembleコマンドに対して指定できます。className引数に指定した実装クラスのJavaファイル名を指定します。  

className属性 

この属性の指定が必須なのは、assembletopDownAssemblegenDDsおよびgenWsdlコマンドです。Webサービスの実装クラスのクラス名(パッケージ名を含む)を指定します。  

interfaceName属性 

interfaceNameは必須属性です。Webサービスへのインタフェースを指定します。 

<port>サブタグ 

<port>サブタグが必須となるのは、複数の<porttype>タグを指定する場合です。Webサービスのインタフェースに適用されるポートを指定します。指定する<porttype>タグが1つのみの場合は、<port>タグは不要です。 

例18-8に、Webサービスへのポート・タイプの割当て方法を示します。

例18-8    Webサービスへのポート・タイプの割当て

...
<oracle:porttype 
   interfaceName="my.company.MyInterface"   
   className="my.company.MyImpl">
</oracle:porttype>
...

Antタスクでのハンドラの構成方法

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

WebServicesAssemblerにより、Antタスクでハンドラおよびクライアント・ハンドラを構成できます。Antタスクを使用して、Enterprise Web Services 1.1仕様によってハンドラ用に策定されている情報をすべて構成できます。


注意

ハンドラおよびクライアント・ハンドラは、Antタスクでのみ宣言および構成できます。コマンドラインでは宣言または構成できません。 


ハンドラは、リクエスト、レスポンスまたは障害を、Webサービス・コンポーネントによる処理前に調べて、必要に応じて変更することができます。また、リクエストがコンポーネントによって処理された後でレスポンスまたは障害を調べて、必要に応じて変更することもできます。クライアント・ハンドラは、その名前が示すように、クライアント上で実行されますが、実行されるタイミングは、リモート・ホストにリクエストが送信される前、またはクライアントによってレスポンスが処理される前です。

handlerタグにより、WebServicesAssembler Antタスクでのハンドラを定義します。属性により、ハンドラの詳細を定義します。このタグと属性は、Enterprise Web Services 1.1仕様によって策定された<handler>タグとそのサブ要素に対応しています。Antタスク内でハンドラとその属性を宣言すると、対応する要素がwebservices.xmlに設定されます。

handlerタグの属性と子タグ

次の各項では、handlerタグで使用できる属性と子タグについて説明します。

class(属性)
class="class_name"

この属性により、ハンドラ実装の完全修飾クラス名を定義します。

この属性を使用すると、webservices.xml<handler-class>class_name</handler-class>要素が設定されます。

initparam(子タグ)
<oracle:initparam name="myName" value="myValue" />

この子タグにより、ハンドラが使用する初期化パラメータの名前と値のペアを定義します。name属性には、パラメータ名を指定します。各パラメータ名はWebアプリケーションで一意である必要があります。value属性には、対応するパラメータの値を指定します。

複数のinitparam宣言を、handler Antタスク起動の子タスクとして定義できます。

initparam子タグを使用すると、webservices.xmlに次の<init-param>構造が設定されます。

<init-param>
    <param-name>myName</param-name>
    <param-value>myValue</param-value>
</init-param>
name(属性)
name="handler_name"

この属性により、ハンドラの名前を定義します。名前はモジュール内で一意である必要があります。

この属性を使用すると、webservices.xml<handler-name>handler_name</handler-name>要素が設定されます。

soapheader(子タグ)
<oracle:soapheader value="{namespace_URI}local_part"/>

この子タグにより、ハンドラによって処理されるSOAPヘッダーのQNameを定義します。value属性には、QNameのローカル部分および名前空間URIを指定します。複数のsoapheader宣言を、handler Antタスクの子タスクとして定義できます。

soapheader子タグの値は、webservices.xmlsoap-headerタグに書き込まれます。たとえば、名前空間URIがhttp://oracle.j2ee.ws/Headerで、ローカル部分がauthenticateHeaderである場合は、soapheader子タグには次の値を設定します。

<oracle:soapheader value="{http://oracle.j2ee.ws/Header}authenticateHeader"/>

この値に対して、webservices.xmlファイル内に次の表現が設定されます。

<soap-header 
xmlns:wsa1="http://oracle.j2ee.ws/Header">wsa1:authenticateHeader</soap-header>

この例において、wsa1は、指定する名前空間の一意の接頭辞です。

soaprole(属性)
soaprole ="Some_SoapRole"

この属性により、ハンドラの機能としてSOAPアクターを定義します。

この属性を使用すると、webservices.xml<soap-role>Some_SoapRole</soap-role>要素が設定されます。

soapRole(子タグ)

この子タグは、soaprole属性と同じ動作です。ハンドラの機能としてSOAPアクターを定義します。ただし、属性とは異なり、soapRole子タグを使用すると、ハンドラに対して複数のSOAPロールを指定できます。

たとえば、次のAntタスク・フラグメントは、soapRoleサブタグを使用して、ハンドラがロールとして実行する2つのSOAPアクターを定義しています。

...
<oracle:handler soapRole="SomeSOAPRole" name="StaticStateHandlerName" 
                class="oracle.j2ee.ws.tools.wsa.handler.StaticStateHandler">
   <oracle:soapRole name="another-soap-role"/>
   <oracle:soapRole name="yet-another-soap-role"/>
</oracle:handler> 
...

ハンドラ構成のサンプル

Antタスクで使用できるハンドラ構成を構成する方法を説明するため、例18-9に、StaticStateHandlerNameハンドラのサンプル構成を示します。このハンドラはmyApp.handler.StaticStateHandlerクラスによって実装され、2つの初期化パラメータSCOTTおよびTIGERを使用します。このハンドラでは、authenticateHeaderauthenticateHeader2の2種類のSOAPヘッダーが処理されます。

例18-9    ハンドラ構成のサンプル

<some tag that supports handlers>
 <oracle:handler soaprole="Some_SoapRole" 
   name="StaticStateHandlerName"
   class="myApp.handler.StaticStateHandler">
        <oracle:initparam name="id" value="SCOTT"/>
        <oracle:initparam name="password" value="TIGER"/>
   <oracle:soapheader value="{http://oracle.j2ee.ws/Header}authenticateHeader"/>
   <oracle:soapheader value="{http://oracle.j2ee.ws/Header2} authenticateHeader2"/>
 </oracle:handler>
</some tag that supports handlers>

ハンドラを構成できるAntタスク

次のWebServicesAssemblerコマンドのAntタスクでは、handlerタグを子タスクとして指定できます。

Antタスクでの複数ハンドラの構成

ハンドラをサポートする任意のコマンドに対して、複数のハンドラを指定できます。ハンドラごとに異なる構成を設定してもかまいません。

例18-10に、複数ハンドラの構成を示します。親タグには、ハンドラをサポートする任意のタグを指定できます。

アーカイブにファイルを追加する方法

EARまたはWARアーカイブにファイルを追加するには、WebServicesAssemblerによりステージング領域として使用されているディレクトリにそのファイルをコピーします。ステージング領域とは、WebServicesAssemblerが*Assembleタスクをコールする前にjarでアーカイブを生成する場所です。ステージング領域のレイアウトの詳細は、図18-1を参照してください。

デフォルトのステージング領域は、WARアーカイブでは<output>/war、EARアーカイブでは<output>/earです。この<output>変数は、output引数の値を意味しています。たとえば、output引数の値がoutputDirである場合は、各ファイルがoutputDir/warおよびoutputDir/earに格納されます。

たとえば、次のAntタスクでは、生成済のEARにキーストアoraks.jksが格納されます。

<copy file="oraks.jks" todir="build/ear/META-INF/>
<oracle:assemble output="build" 
                ...
 />

WebServicesAssemblerビルドの制御方法

WebServicesAssemblerのブール型引数failonerrorを使用すると、エラーがあってもビルドが続行されます。failonerrorの値がtrueの場合は、WebServicesAssemblerでエラーが発生すると、ビルドは失敗します。値がfalseの場合は、ビルドは続行されます。デフォルト値はtrueです。

failonerror引数は任意のWebServicesAssemblerコマンドで使用できます。次の例では、assembleコマンドでエラーが発生した場合でも、処理が続行されます。

<oracle:assemble failonerror="false"
          ...
/>

MTOMエンコード添付ファイルのサポートをWebサービスにアセンブルする方法

mtomSupport Ant属性を使用すると、MTOMエンコード・メッセージのサポートをWebサービスおよびWebサービス・クライアントにアセンブルできます。この属性は、Antタスクでのみ使用でき、WebServicesAssemblerコマンドラインでは使用できません。

mtomSupport属性は、次のAntタスクで使用できます。

EARまたはWARアーカイブへの複数のWebサービスの割当て方法

1つのアーカイブ(EARまたはWAR)に複数のWebサービスを割り当てるには、WARに入れるWebサービスごとにassembleまたはtopDownAssembleタスクをコールする必要があります。各アセンブル・タスクに対して設定する引数は、次の規則に従う必要があります。

例18-11に、EARファイルのmyApps.earに、2つのWebサービスであるfirstAppおよびnextAppを割り当てるAntタスクを示します。このコード例の詳細は次のとおりです。

省略記号はさらにAntコマンドがあることを示します。

例18-11    EARに2つのWebサービスを割り当てるAntタスク

   <oracle:assemble appName="firstApp"
            output="${out.dir}"
            war="${out.dir}/war"
              ...
            />
        <oracle:assemble appName="nextApp"
            output="${out.dir}
            appendToExistingDDs="true"
            ear="myApps.ear"
              ...            
            />

例18-12に、EARファイルのmyApps.earに、3つのWebサービスであるfirstAppnextAppおよびlastAppを割り当てるAntタスクを示します。このコード例の詳細は次のとおりです。

省略記号はさらにAntコマンドがあることを示します。

例18-12    EARに3つのWebサービスを割り当てるAntタスク

<oracle:assemble appName="firstApp"
            output="${out.dir}"
            war="${out.dir}/war"
              ...
            />
        <oracle:assemble appName="nextApp"
            output="${out.dir}
            appendToExistingDDs="true"
            war="${out.dir}/war"
              ...
            />
        <oracle:assemble appName="lastApp"
            output="${out.dir}
            appendToExistingDDs="true"
            ear="myApps.ear" 
              ... 
            />

WARファイルに複数Webサービスを割り当てる際の制限事項

WebServicesAssemblerでは、1つのWARに複数のWebサービスを追加する際の競合はチェックされません。次の競合により無効なアセンブリが生じますが、これはデプロイ時または実行時まで検出されません。

WSDLでのJavaメソッド・パラメータ名の表現方法

JavaクラスまたはEJBからボトムアップ方式でWebサービスを生成すると、WebServicesAssemblerによりWSDLが生成されます。WebServicesAssemblerは、生成するWSDL内のJavaメソッドの<element name="..." />属性に対して、メソッドの実パラメータの名前を使用しようとします。WSDLおよびSOAPメッセージでメソッドの実パラメータの名前を使用すると、パラメータとその対応する要素の判別が容易になります。

WebServicesAssemblerでは、次の方法、手順を使用してメソッドの実パラメータ名が取得されます。

  1. インタフェース・ソース・ファイルを指定すると、そのコードが、パラメータ名がないかどうか解析されます。それには、Javaインタフェース・ファイルのフルパス名をinterfaceFileName引数で指定する必要があります。

  2. インタフェース・ソース・ファイルを指定しない場合は、インタフェースのメソッドを実装するJavaクラス・ファイルがロードされ、解析されます。パラメータ名を抽出できるように、クラス・ファイルを、javac-gオプションでコンパイルしておく必要があります。

この方法でパラメータ名を取得できなかった場合、あるいはクラスがロード不能になっているかまたは曖昧化している場合は、パラメータのデータ型と数値を組み合せた文字列(たとえばstring_1)がデフォルトで使用されます。

次のメソッドを表すWSDLフラグメントを、例18-13および例18-14に示します。

public String sayHello(String name)

例18-13に示すのは、WebServicesAssemblerがsayHelloメソッドのパラメータ名を取得できたWSDLフラグメントです。<element name="..."/>属性とその値が太字で強調表示されています。

例18-13    生成されたパラメータ名のあるWSDLフラグメント

<definitions name="HelloService" targetNamespace="http://hello.demo.oracle/">
    <types>
    <schema elementFormDefault="qualified" targetNamespace="http://hello.demo.oracle/">
    <complexType name="sayHello">
       <sequence>
          <element name="name" nillable="true" type="string"/>
       </sequence>
    </complexType>
...

例18-14に示すのは、sayHelloメソッドのパラメータ名が見つからなかったWSDLフラグメントです。element nameの属性には、値string_1が使用されます。<element name="..."/>属性とその値が太字で強調表示されています。

例18-14    デフォルトのパラメータ名のあるWSDLフラグメント

<definitions name="HelloService" targetNamespace="http://hello.demo.oracle/">
    <types>
    <schema elementFormDefault="qualified" targetNamespace="http://hello.demo.oracle/">
    <complexType name="sayHello">
       <sequence>
          <element name="string_1" nillable="true" type="string"/>
       </sequence>
    </complexType>
...

制限事項

「WebServicesAssemblerの使用方法」を参照してください。

追加情報

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


戻る 次へ
Oracle
Copyright © 2006 Oracle Corporation.

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