| Oracle Application Server Web Services開発者ガイド 10g(10.1.3.1.0) B31868-01 |
|
この章では、WebServicesAssemblerツールに備わっている機能について説明します。
WebServicesAssemblerツールを使用すると、Oracle Application Server Web Servicesをアセンブルできます。WebServicesAssemblerツールを使用すると、トップダウン方式とボトムアップ方式のどちらでWebサービスを作成するかにかかわらず、サービスの開発およびデプロイに必要なアーチファクトを生成できます。また、WebServicesAssemblerは、WSDLをベースにしたWebサービス・クライアント・オブジェクトの作成用に呼び出すこともできます。
トップダウン方式の場合は、WebServicesAssemblerにWSDLを提供し、これによりサービス・エンドポイント・インタフェースを作成します。次に、Javaクラスなどの必要なアーキテクチャ用のサービスを実装していきます。
ボトムアップ方式の場合は、既存のビジネス・ロジックをベースにします。これには、Javaクラス、Enterprise JavaBeans(EJB)、CORBAオブジェクト、JMSキュー、またはPL/SQLプロシージャなどのデータベース・アーチファクトなどがあります。WebServicesAssemblerは、これらのアーチファクトを使用して、WSDL、マッピング・ファイルおよび必要なデプロイメント・ディスクリプタをアセンブルします。
スキーマ・ベースの場合は、XMLスキーマをベースにしてJaveBeanを生成します。JaveBeanが生成された後、Beanを引数として使用するインタフェースを記述し、ボトムアップ方式でWSDL、マッピング・ファイルおよびデプロイメント・ディスクリプタを生成します。
JAX-BまたはToplinkを使用してXMLスキーマからBeanを生成することもできますが、WebServicesAssemblerまたはAntタスクを使用することもできます。
OC4Jコンテナではデプロイを処理しますが、WebServicesAssemblerツールでは、確実に、生成されるアプリケーション・アーカイブが適切にデプロイ用に準備されるようにします。WebServicesAssemblerでは、すべての関連デプロイメント・ディスクリプタの生成が処理され、アプリケーションによって必要とされる固有の構成がOracle固有のデプロイ・ファイルにマップされます。JavaクラスまたはEJB 2.1をベースにしたアプリケーションは、様々なコンテナにデプロイ可能です。このようなWebサービスはJ2EE標準のデプロイ可能形式であり、業界標準であるJAX-RPC、Enterprise Web Services 1.1、Web Services-Interoperability(WS-I)などの仕様に準拠しています。
WebServicesAssemblerツールは、コマンドラインで、またはAntタスクによって起動できます。WebServicesAssemblerを使用することで、Webサービスのアセンブル方法の選択が拡がります。アセンブリ・プロセスをいくつかのステップに分割し、Webサービスの作成方法をより綿密に制御できます。たとえば、次のタスクを実行できます。
このために、WebServicesAssemblerには、デプロイメント・ディスクリプタからのサービスを追加および削除するためのコマンドライン引数が用意されています。すなわち、WebServicesAssemblerでは生成されない情報が含まれた、手動でコーディングした一連のデプロイメント・ディスクリプタをベースにできる、ということです。WebServicesAssemblerを使用して、このディスクリプタに情報を追加できます。
WebServicesAssemblerツールでは、いくつかのコマンドがサポートされています。WebServicesAssemblerを起動する際、コマンドライン上に指定できるコマンドは1つのみです。
一般的なコマンドラインの構文は次のとおりです。
java -jar [OC4J_HOME]/webservices/lib/wsa.jar -[command] -[argument name][argument value]...
この例において、OC4J_HOMEはOC4Jがインストールされた場所で、wsa.jarはWebServicesAssembler JARファイルの名前です。コマンドラインの構文規則は次のとおりです。
たとえば、WindowsとLinuxでは、空白は二重引用符で囲みます。その他のオペレーティング・システムでは、Java実行可能ファイルにパラメータとして空白を渡すために別の方法が必要な場合があります。
AntタスクからWebServicesAssemblerコマンドをコールするには、Antのインストールに若干の変更や追加が必要なことがあります。
この項では、WebServicesAssemblerツールで使用可能なコマンドについて説明します。コマンドは、備えている機能別に次の各カテゴリに分類されます。
Webサービスのアセンブルに使用できるコマンドは、次のとおりです。
これらのコマンドに共通の機能と動作は、次のとおりです。
*Assembleの各コマンドでは、デプロイ可能アーカイブに必要なすべてのファイルが作成されます。
*Assembleの各コマンドでは、topDownAssembleを除いて、Javaクラスの生成後、assembleコマンドがコールされます。
*Assembleのコマンドによって作成されたファイルは、output引数によって指定されたディレクトリの下のステージング・ディレクトリ構造に格納されます。 *Assembleコマンドによって作成されるステージング・ディレクトリ構造の図は、図18-1を参照してください。
earおよびwarディレクトリの名前と内容は、earおよびwar引数に指定した値によって決まります。
*Assembleのコマンドは、ejbAssembleを除いて、EARおよびWARファイルを出力します。また、オプションでディレクトリに出力できます。このディレクトリには、OC4JインスタンスにデプロイできるWARの内容が格納されます。
*Assembleのいずれかのコマンドにclasspathまたはinput引数を指定した場合は、クラスパス内に含まれるクラスがサーバー上に実際にあるかどうかを確認してください。
*Assembleコマンドによってアーカイブする前に、EARまたはWARファイルにファイルを追加できます。 このトピックの詳細は、「アーカイブにファイルを追加する方法」を参照してください。
図18-1に、*Assembleコマンドによって作成されるステージング・ディレクトリ構造を示します。各コマンドにより、指定された出力ディレクトリの下に、ear、srcおよびwarの3つのサブディレクトリが作成されます。
earサブディレクトリには、生成されたEARファイルの内容が格納されます。さらに、このサブディレクトリには、application.xmlファイルが含まれるMETA-INFサブディレクトリがあります。
srcサブディレクトリには、生成されたソース・ファイルが格納されます。さらに、このサブディレクトリには、Javaプロキシ・ファイルが含まれるproxyサブディレクトリがあります。WebサービスがWSDLからアセンブルされている場合は(トップダウン方式)、srcには、生成されたサービス・エンドポイント・インタフェースと値タイプ・クラスのスケルトンが入ったサブディレクトリも含まれます。
warサブディレクトリには、生成されるWARファイルの内容が格納されます。さらに、このサブディレクトリの下には、WEB-INFサブディレクトリがあります。WEB-INFには、マッピング・ファイルと、標準のデプロイメント・ディスクリプタおよびOracle固有のデプロイメント・ディスクリプタが格納されます。このようなファイルには、web-service_name_java_wsdl_mapping.xml、web.xml、oracle-webservices.xmlおよびwebservices.xmlファイルがあります。 さらに、WEB-INFには、classesおよびwsdlサブディレクトリがあります。classesサブディレクトリには実装クラスが格納されます。wsdlサブディレクトリにはWebサービスのWSDLファイルが格納されます。
aqAssembleコマンドは、データベースのアドバンスト・キューからWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。
aqAssembleコマンドでは、アドバンスト・キュー用WSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。
|
関連資料
|
java -jar wsa.jar -aqAssemble -dbUser scott/tiger -sql ToyQueue -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj -dataSource jdbc/OracleManagedDS -appName query
<oracle:aqAssemble dbUser="scott/tiger" sql="ToyQueue" dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj" dataSource="jdbc/OracleManagedDS" appName="query" />
aqAssembleコマンドを使用する際には、次の引数の指定が必須です。
データベースへの接続も必要です。それには、次の引数の組合せのいずれかを使用します。
次のリストは、aqAssembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「データベース・アセンブリ引数」を参照してください。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
この引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
この引数の詳細は、「セッション引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、aqAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
assembleコマンドは、Webサービスをボトムアップ方式で生成する場合に使用します。このコマンドにより、デプロイ可能なアーカイブを作成するために必要なすべてのファイルが作成されます。このようなファイルには、固有のデプロイメント・ディスクリプタoracle-webservices.xmlがあります。このコマンドは、トランスポート・メカニズムがHTTPまたはJMSのどちらでも、ステートレスWebサービスを生成できます。
Java実装クラスを検索するには、inputまたはclasspath引数を指定する必要があります。これらの引数のいずれかを指定した場合は、クラスパス内に含まれるクラスがサーバー上に実際にあるかどうかを確認してください。クラスパスの内容はアーカイブにコピーされないためです。
assembleコマンドでは、Webサービスを生成する以外に、WSDLへのWSIFバインディングの追加も行えます。JavaクラスをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifJavaBinding引数を使用します。また、className引数にJavaクラスを指定する必要もあります。
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")
次のコマンドラインと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
<oracle:assemble appName="myService" output="build" input="myservice.jar > <oracle:porttype interfaceName="com.myCompany.myService.Hello" className="com.mycompany.HelloImpl"/> </oracle:assemble>
assembleコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、assembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「セッション引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、assembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<porttype>タグ。詳細は、「Antタスクでのポート・タイプの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
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
<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コマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「CORBAアセンブリ引数」を参照してください。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、corbaAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
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
<oracle:dbJavaAssemble dbUser="scott/tiger" dbJavaClassName="oracle.sqlj.checker.JdbcVersion" dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj" dataSource="jdbc/OracleManagedDS" appName="javacallin" />
dbJavaAssembleコマンドを使用する際には、次の引数の指定が必須です。
dbJavaClassName引数は、Webサービスとして公開するデータベース内のJavaクラスを指定します。
データベースへの接続も必要です。それには、次の引数の組合せのいずれかを使用します。
次のリストは、dbJavaAssembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「データベース・アセンブリ引数」を参照してください。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
この引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
この引数の詳細は、「セッション引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、dbJavaAssembleは、引数bindingName、portName(またはname)、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
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引数にディレクトリを指定します。
ejbAssembleコマンドでは、WSIFバインディングをWSDLに追加することもできます。EJBをWebサービスとして公開しているときに、WSIFバインディングを追加するには、wsifEjbBinding引数を使用します。className引数にEJBのホーム・インタフェースを、jndiName引数にそのJNDI名を、それぞれ指定する必要があります。
|
注意
|
|
関連資料
|
次のコマンドラインとAntタスクの例では、EARファイルbuild/myService.earを作成しています。
java -jar wsa.jar -ejbAssemble -output build -input myEjb.jar -ejbName myEjb -appName myService
<oracle:ejbAssemble output="build" input="myEjb.jar" ejbName="myEjb" appName="myService" />
ejbAssembleコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、ejbAssembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、ejbAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
jmsAssembleコマンドは、JMS宛先(キューまたはトピック)をWebサービスとして公開する場合に使用します。JMS Webサービスには、sendとreceiveの2種類の操作があります。send操作では、JMS宛先にメッセージが送信されます。receive操作では、JMS宛先からのメッセージを取得します。一部のJMSメッセージ・プロパティ(たとえば、相関ID)は、SOAPヘッダーとして公開できます。
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
<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コマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、jmsAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
plsqlAssembleコマンドは、ストアド・プロシージャおよびファンクションを含むPL/SQLパッケージからWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。
|
関連項目
|
plsqlAssembleコマンドは、PL/SQLパッケージに対するWSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。
java -jar wsa.jar -plsqlAssemble -appName query -dbUser scott/tiger -sql Company -dbConnection jdbc:oracle:thin:@dsunrde22:1521:sqlj -dataSource jdbc/OracleManagedDS
<oracle:plsqlAssemble dbUser="scott/tiger" appName="query" sql="Company" dbConnection="jdbc:oracle:thin:@dsunrde22:1521:sqlj" dataSource="jdbc/OracleManagedDS" />
plsqlAssembleコマンドを使用する際には、次の引数の指定が必須です。
sql引数は、Webサービスとして公開するPL/SQLパッケージの名前を指定します。
データベースへの接続も必要です。それには、次の引数の組合せのいずれかを使用します。
次のリストは、plsqlAssembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「データベース・アセンブリ引数」を参照してください。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
この引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
この引数の詳細は、「セッション引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、plsqlAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
sqlAssembleコマンドは、SQL問合せやデータ操作言語(DML)などのSQL文からWebサービスを生成する場合に使用します。このコマンドを使用するには、データベースに接続する必要があります。
|
関連項目
|
sqlAssembleコマンドでは、SQL問合せ用WSIFバインディングをWSDLに追加することもできます。データベース・リソースをWebサービスとして公開しているときに、WSIFバインディングをWSDLに追加するには、wsifDbBinding引数を使用します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。
次のコマンドラインと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
<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コマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「データベース・アセンブリ引数」を参照してください。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
この引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
この引数の詳細は、「セッション引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、sqlAssembleは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
topDownAssembleコマンドは、WSDL記述をベースにしたWebサービスで必要となるクラスとデプロイメント・ディスクリプタを作成する場合に使用します。これらのファイルは、EARファイル、WARファイル、ディレクトリのいずれにも格納できます。inputまたはclasspath引数の値を指定して、指定した実装クラスが適切にロードされるようにする必要があります。
このコマンドは、通常genInterfaceとともに使用され、トップダウン方式でWebサービスを生成します。これらのコマンドを一緒に使用してWebサービスを生成するに当たっては、これらのコマンドのunwrapParameters引数には同じ値を指定する必要があります。
実装可能なサービス要素は1つのみです。WebServicesAssemblerでは、一度に1つのサービスに対してのみアーチファクトを生成できます。複数のサービスがWSDLで記述されている場合は、コマンドライン引数serviceNameを使用して、使用対象のサービスを指定できます。
生成されたクラスの名前の間に不整合がある場合は、JAX-RPCの名前衝突に関する4.3.12項で記述されているように、JAX-RPCのルールに従って解決されます。詳細は、「名前競合の解決」を参照してください。
次のリストは、WebServicesAssemblerが使用できるWSDLについての制限事項です。
topDownAssembleコマンドでは、ポート・タイプごとに<porttype>タグを指定する必要があります。
xsd:choiceまたはxsd:groupのXML型を含むWSDLを使用できません。これらのXML型を含むWSDLを使用する場合は、WebServicesAssemblerのdataBinding引数をfalseに設定し、WSDLファイルでのスキーマ定義にペイロードが準拠するようにSOAPElementをコーディングする必要があります。
次のコマンドラインと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
<oracle:topDownAssemble output="build" wsdl="my.wsdl" input="myClasses" appName="myService"> <porttype className="com.mycompany.HelloImpl"/> </oracle:topDownAssemble>
topDownAssembleコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、topDownAssembleコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
この引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
<proxy>タグ。詳細は、「Antタスクでのプロキシ生成の構成方法」を参照してください。
<port>タグ。<port>タグでは、topDownAssembleは、引数name(portNameと同じ)、portNameおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<porttype>タグ。詳細は、「Antタスクでのポート・タイプの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
次の各コマンドは、WSDLに対するアクションを実行します。fetchWsdlおよびgenQosWsdlコマンドは、トップダウン方式でのWebサービス開発に使用され、WSDLの内容と位置を管理します。genWsdlコマンドは、ボトムアップ方式でのWebサービス開発でのWSDLの生成に使用されます。analyzeコマンドは、WSDLに記述されている機能がWebServicesAssemblerによってサポートされているかどうかを判別するためにいつでも使用できます。
analyzeコマンドは、このバージョンのWebServicesAssemblerによってWSDLを処理できるかどうかを確認する場合に使用します。analyzeコマンドにより、指定されたWSDLを使用してプロキシを生成できるかまたはトップダウン方式でのアセンブリ用のインタフェースを作成できるかどうかを判別します。また、このコマンドにより、WSDLが有効なXMLを使用しているか、OC4JのJAX-RPC要件に準拠しているかどうかをチェックします。
このコマンドは、WSDLを処理できない場合は、メッセージを戻します。
次のコマンドラインとAntタスクの例では、analyzeを使用して、指定されたWSDLを処理するかどうかを確認しています。
java -jar wsa.jar -analyze -wsdl myservice.wsdl
<oracle:analyze wsdl="myservice.wsdl" />
analyzeコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、analyzeコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
この引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
なし
fetchWsdlコマンドは、トップダウン方式のWebサービスの生成において、基底(またはトップレベル)のWSDLファイルと、Webサービスのインポート済/組込み済のWSDLとスキーマを、指定された出力ディレクトリにコピーする場合に使用します。
WSDLとスキーマはすべて同じディレクトリにダウンロードされます。ネーミングの競合がある場合でも、ファイル名の拡張子の前に数字を追加することで解決されます。たとえば、3つのmyschema.xsdファイルをダウンロードする場合は、myschema.xsd、myschema1.xsdおよびmyschema2.xsdとネーミングされます。
次のコマンドラインとAntタスクの例では、URLに指定された基底WSDLと、それにインポートされたその他のWSDLフラグメントとスキーマがフェッチされています。次に、その結果がwsdlディレクトリに格納されます。
java -jar wsa.jar -fetchWdsl -wsdl http://someserver/services/aservice?WSDL -output wsdl
<oracle:fetchWsdl wsdl="http://someserver/services/aservice?WSDL" output="wsdl" />
fetchWsdlコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、fetchWsdlコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
なし
抽象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
<oracle:genConcreteWsdl output="outputDir/myConcrete.wsdl" wsdl="myAbstract.wsdl" />
genConcreteWsdlコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genConcreteWsdlコマンドで使用できるすべての引数を示しています。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
なし
トップダウン方式のWebサービス開発では、genQosWsdlコマンドを使用して、セキュリティおよび信頼性の機能アサーションを、指定したWSDLに追加できます。機能アサーションとはWebサービス管理ポリシーの記述で、Webサービスのコンシューマはこれを使用してそのWebサービスで有効な管理ポリシーを知ることができます。
機能アサーションは、通常デプロイメント・ディスクリプタに定義されます。ddFileName引数を使用して機能アサーションを含むファイルを指定し、wsdl引数を使用して機能アサーションの挿入先となるWSDLの名前を指定します。output引数には、変更されたWSDLファイルが格納される場所を指定します。output引数を指定しない場合は、元のWSDLが上書きされます。
次のコマンドラインとAntタスクの例では、my.wsdlにアサーションを追加し、その結果をbuildディレクトリに格納しています。
java -jar wsa.jar -genQosWsdl -wsdl my.wsdl -ddFileName oracle-webservices.xml -output build
<oracle:genQosWsdl wsdl="my.wsdl" ddFileName="oracle-webservices.xml" output="build" />
genQosWsdlコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genQosWsdlコマンドで使用できるすべての引数を示しています。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
なし
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
genWsdlコマンドでは、次の引数を使用して、生成されるWSDLにWSIFバインディングを追加できます。
wsifJavaBinding引数: JavaクラスをWebサービスとして公開しているときに、WSDLにWSIFバインディングを追加します。また、className引数にJavaクラスを指定する必要もあります。
wsifEjbBinding引数: EJBをWebサービスとして公開しているときに、WSDLにWSIFバインディングを追加します。className引数にEJBのホーム・インタフェースを、jndiName引数にそのJNDI名を、それぞれ指定する必要があります。
wsifDbBinding引数: データベース・リソースをWebサービスとして公開しているときに、WSDLにWSIFバインディングを追加します。リソースのOracle JPublisher生成JavaクラスのclassNameとデータベース接続を指定する必要があります。
genWsdlコマンドを使用して、WSDLの複数のポート用にWSIFバインディングを追加することもできます。
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
<oracle:genWsdl output="etc" > <oracle:porttype interfaceName="com.mycompany.myservice.Hello"/> <oracle:classpath> <pathelement path="myservice.jar" /> </oracle:classpath> </oracle:genWsdl>
genWsdlコマンドを使用する際には、次の引数の指定が必須です。
genWsdlには、注釈付きのJavaクラスを指すinterfaceNameまたはclassNameの指定が必須です。
次のリストは、genWsdlコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「データベース・アセンブリ引数」を参照してください。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「WSDL管理引数」を参照してください。
<port>タグ。<port>タグでは、genWsdlは、引数bindingName、name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocation、soapVersionおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<porttype>タグ。詳細は、「Antタスクでのポート・タイプの構成方法」を参照してください。
次のコマンドでは、Javaインタフェース、プロキシ/スタブまたはJAX-RPC値タイプ・クラスを作成するためのコードが生成されます。
トップダウン方式での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は、次の条件のスキーマ・タイプに対して
|
|
注意
WSDLファイルの要素名でマルチバイト・キャラクタが使用されている場合、
この制限事項を回避するには、インタフェースを生成するときに、 |
|
関連項目
|
次のコマンドラインとAntタスクの例では、srcディレクトリ(src/oracle/demo/service)にサービス・エンドポイント・インタフェースを作成しています。
java -jar wsa.jar -genInterface -output src -wsdl myservice.wsdl -packageName oracle.demo.service
<oracle:genInterface output="src" wsdl="myservice.wsdl" packageName="oracle.demo.service" />
genInterfaceコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genInterfaceコマンドで使用できるすべての引数を示しています。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
なし
genProxyコマンドは、J2SE Webサービス・クライアントから使用可能な静的プロキシ・スタブを作成する場合に使用します。このコマンドにより、WSDLに指定されているポートに接続するために必要な、すべてのJavaファイルが作成されます。Oracle固有のクライアント構成がある場合、それをコマンドに渡すにはddFileName引数を使用します。
プロキシ・コードは、コンパイルしないと使用できません。
genProxyコマンドは、WSDLドキュメントから表18-2のファイルを生成します。リストと説明では、JAX-RPCマッピング・ファイルを使用してこれらのファイルのデフォルトの命名規則が変更されていないものと想定しています。また、生成されたJavaクラスの名前の間に不整合がある場合は、JAX-RPCの名前衝突に関する4.3.12項で記述されているように、JAX-RPCのルールに従って解決されます。詳細は、「名前競合の解決」を参照してください。
これらの生成されたファイルを変更しても、WebServicesAssemblerコマンドが再び起動されると上書きされる場合があるので、変更はお薦めできません。
|
注意
WebServicesAssemblerは、次の条件のスキーマ・タイプに対して
|
|
関連項目
|
次のコマンドラインとAntタスクの例では、プロキシ・コード全体を作成してproxysrcディレクトリに格納しています。
java -jar wsa.jar -genProxy -output proxysrc -wsdl myservice.wsdl
<oracle:genProxy output="proxysrc" wsdl="myservice.wsdl" />
genProxyコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genProxyコマンドで使用できるすべての引数を示しています。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「Java生成引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
この引数の詳細は、「メッセージ書式引数」を参照してください。
これらの引数の詳細は、「プロキシ引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
<handler>タグ: 詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
<port>タグ: <port>タグでは、genProxyは、引数endpointAddress、name(portNameと同じ)、portName、replyToConnectionFactoryLocationおよびreplyToQueueLocationを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
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マッピング・ファイルです。
次のコマンドラインと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
<oracle:genValueTypes packageName="com.mycompany" output="build"> <oracle:schema value="otherSchema.xsd"/> <oracle:schema value="mySchema.xsd"/> </oracle:genValueTypes>
genValueTypesコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genValueTypesコマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
なし
次のコマンドにより、EARのディスクリプタの生成に使用されるデプロイメント・ディスクリプタまたはファイルが作成されます。
application.xmlファイルの作成
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
<oracle:genApplicationDescriptor input="src/ejb" output="build" />
genApplicationDescriptorコマンドを使用する際には、次の引数の指定が必須です。
次のリストは、genApplicationDescriptorコマンドで使用できるすべての引数を示しています。
この引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
なし
genDDsコマンドは、トップダウンまたはボトムアップ方式でのWebサービス生成でweb.xml、webservices.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
<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コマンドで使用できるすべての引数を示しています。
これらの引数の詳細は、「デプロイメント・ディスクリプタ引数」を参照してください。
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
これらの引数の詳細は、「JMSアセンブリ引数」を参照してください。
これらの引数の詳細は、「WSDLアクセス引数」を参照してください。
この引数の詳細は、「WSDL管理引数」を参照してください。
<port>タグ。<port>タグでは、genDDsは、引数name(portNameと同じ)、portName、sendConnectionFactoryLocation、sendQueueLocationおよびuriを使用できます。詳細は、「Antタスクでのポートの構成方法」を参照してください。
<porttype>タグ。詳細は、「Antタスクでのポート・タイプの構成方法」を参照してください。
<handler>タグ。詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
次の各コマンドにより、WebServicesAssemblerコマンドの概略やツールのバージョン番号が戻されます。
helpコマンドは、WebServicesAssemblerコマンドのリストと簡単な説明を戻す場合に使用します。WebServicesAssemblerでも、次のように実行された場合にヘルプが戻されます。
java -jar wsa.jar
java -jar wsa.jar -myProxy -ootput proxysrc -wsdl myservice.wsdl
特定のコマンド後ろに-helpを付けて実行すると、そのコマンドのヘルプを取得できます。たとえば、次のコマンドでは、genProxyコマンドとその必須およびオプションの引数に関する詳細なヘルプが戻されます。
java -jar wsa.jar -genProxy -help
helpコマンドは、コマンドライン上でのみサポートされます。これに相当するAntタスクはありません。次のコマンドラインの例では、WebServicesAssemblerによってサポートされているコマンドと引数に関するヘルプ・テキストが戻されます。
java -jar wsa.jar -help
Antでのサポートはありません。
なし
helpコマンドで使用できる引数は、次のとおりです。
この引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
なし
versionコマンドは、WebServicesAssemblerツールのバージョン番号を取得する場合に使用します。
java -jar wsa.jar -version
Antでのサポートはありません。
なし
これらの引数の詳細は、「Webサービス・アセンブリ用の一般引数」を参照してください。
なし
この項では、各WebServicesAssemblerコマンドでコールできる引数について説明します。
この項では、多くのWebServicesAssemblerコマンドで使用できる一般引数について説明します。これには、ファイル関連入出力引数、WSDL関連引数およびマッピング関連引数があります。
appName <String>
アプリケーションの名前を指定します。この名前は、通常contextやuriなどの他の引数のベース値として使用されます。earおよびwar引数が指定されていない場合に、この引数の値がEARおよびWARファイルのネーミングにも使用されます。
bindingName <String>
生成されるWSDL内で使用されるバインディングの名前。
classFileName <String>
className引数で指定された実装クラスのJavaファイル名を指定します。このファイルは、アセンブリ時に必要に応じてコンパイルされます。
className <String>
Webサービスの実装クラスのクラス名(パッケージ名を含む)を指定します。
この引数を使用すると、<servlet-class>要素がweb.xmlに追加されます。
EJBをWebサービスとして公開している場合、className引数の値はEJBのホーム・インタフェースである必要があります。
この引数をwsifJavaPort引数とともに使用すると、WSDLのportコンポーネントにあるjava:address要素にclassname属性が追加されます。
wsifEjbPort引数とともにこの引数を使用すると、WSDLのportコンポーネントにあるejb:address要素にclassname属性が追加されます。
classpath <String>
WebServicesAssemblerに与えられるユーザー作成クラスをすべて含むクラスパスを指定します。この引数を指定する理由の1つは、一部の値タイプ・クラスまたは例外を作成済の場合に、WebServicesAssemblerが上書きしないようにするためです。*Assembleコマンドなど、WARファイルを生成するコマンドの場合、この引数により、Webサービスが依存するが、生成されたWARに入れないクラスを指定することができます。
この引数により、生成されたWARファイルに追加クラスがコピーされることはありません。実行時またはデプロイ時に必要となるクラスは、手動でWARまたはEARにコピーするか、あるいはサーバー構成の各オプションを使用してアプリケーション・サーバーのクラスパスで使用可能にする必要があります。
WARファイルにクラスを組み入れるには、input引数を使用することもできます。
クラスパスに複数のパスをリストするには、UNIXオペレーティング・システムを使用している場合は、コロン(:)で区切ります。Windowsオペレーティング・システムを使用している場合は、セミコロン(;)で複数のパスを区切ります。
debug <true|false>
指定されたコマンドに関するすべての詳細診断メッセージを出力するかどうかを指定します。デフォルト値はfalseです。
次のコマンドラインとAntタスクの例では、assembleコマンドのパフォーマンスに関する診断メッセージを表示しています。
コマンドラインの例:
java -jar -wsa.jar -assemble -debug true...
Antタスクの例:
<oracle:assemble debug="true" .... />
ear <file name>
生成されるEARファイルの名前と位置を指定します。次の例では、distディレクトリにEARファイルmyService.earを作成しています。
-ear dist/myService.ear
次の各項目は、WebServicesAssemblerによってear引数の値がどのように解釈されるかについての説明です。
ear引数の値が拡張子.earのあるファイル名で終わる場合(前述の例を参照)、この名前のEARファイルがear引数に指定された位置に作成されます。output引数は、EARファイルの位置の決定には使用されません。
output引数の値を指定してear引数を指定しなかった場合は、EARファイルにはデフォルトの名前としてappName引数の値が付けられます。たとえば、outputの値がbuildで、appNameの値がmyServiceである場合は、earを指定しないと、EARファイルはbuild/myService.earとして作成されます。 earとwar引数は、同じコマンドラインかAntタスクで一緒に使用できます。表18-3では、これらの引数にファイルとディレクトリのどちらを指定したかに応じてこれらの引数の動作がどう異なってくるかについて、説明します。
ejbName <String>
Webサービスとして公開するEJBの名前。これはクラス名ではありません。ejb-jar.xmlファイルの<ejb-name>タグに指定されたEJBの一意の名前です。
EJBがバージョン2.1の場合、この引数を使用すると<ejb-link>要素がwebservices.xmlに追加されます。
emptySoapAction <true|false>
trueの場合、生成されるWSDL内の各SOAPバインディング操作のsoapAction属性の値は、空の文字列に設定されます。falseの場合(デフォルト)、ターゲットの名前空間と操作名(<target-namespace>/<operation-name>)は、soapAction属性の値として使用されます。
OracleAS Web Services WSDLを使用してクライアント・サイド・プロキシを生成する他のベンダー製のツールでは、soapActionのデフォルト値を認識することや受け入れることができないことがあります。この引数をtrueに設定すると、このようなツールと相互運用できる可能性が高くなります。
help
指定されたコマンドのヘルプ・メッセージを表示します。help引数は、コマンドの前後いずれにも指定できます。
次のコマンドラインとAntタスクの例では、assembleコマンドに関するヘルプ・メッセージを表示しています。
コマンドラインの例:
java -jar -wsa.jar -assemble -help ...
または
java -jar -wsa.jar -help -assemble ...
Antタスクの例:
<oracle:assemble debug="help" .... />
initialContextFactory <String>
初期コンテキストを提供するファクトリの名前を指定します。これはオプションの引数で、genWsdlまたはejbAssembleコマンドでEJB WSIFポートを構成するときに、wsifEjbBindingまたはwsifEjbPortとともにコールできます。この属性に値を指定しなかった場合は、jndi.propertiesファイルにある値が使用されます。
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の複数のインスタンスを示します。
<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 <String>
サービス・エンドポイント・インタフェース(SEI)Javaソース・コード・ファイルのパスと名前を指定します。WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。
interfaceFileName引数を指定すると、WebServicesAssemblerが生成済WSDL内からJavaメソッドのパラメータ名を検索する際に役立ちます。
interfaceName <String>
サービス・エンドポイント・インタフェース(SEI)を格納するJavaクラスの名前(パッケージ名を含む)を指定します。
この引数を使用すると、<service-endpoint-interface>String</service-endpoint-interface>要素がWEB-INF/webservices.xmlに追加されます。この場合、StringはinterfaceNameに指定された値です。
データベース・リソースからWebサービスをアセンブルするコマンド(plsqlAssemble、sqlAssemble、dbJavaAssembleまたはaqAssemble)でこの引数を使用すると、<service-endpoint-interface>String</service-endpoint-interface>要素が、serviceName-java-wsdl-mapping.xmlファイルに追加されます。StringはinterfaceNameに指定された値で、serviceNameはserviceName引数の値です。
jndiName <String>
EJBのJNDI名を指定します。
jndiProviderURL <String>
JNDIプロバイダのURLを指定します。これはオプションの引数で、genWsdlまたはejbAssembleコマンドでEJB WSIFポートを構成するときに、wsifEjbBindingまたはwsifEjbPortとともにコールできます。この属性に値を指定しなかった場合は、jndi.propertiesファイルにある値が使用されます。
mappingFileName <String>
JAX-RPCマッピング・ファイルを指すファイル位置を指定します。WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。
この引数を使用すると、<jaxrpc-mapping-file>要素がwebservices.xmlに追加されます。ファイルの位置と名前は、デプロイメント・ディスクリプタに書き込まれるときに変更されることがあります。いくつかのマッピングが元のファイルで定義されていないときは、ファイルの内容は、アーカイブに格納される前に変更されることがあります。
output <String>
生成されるファイルを格納するディレクトリを指定します。そのディレクトリが存在しない場合は、作成します。output引数を指定しなかった場合、出力は現行ディレクトリに格納されます。
genConcreteWsdlコマンドで使用する場合を除いて、output引数のターゲットは、常にディレクトリであるものと想定されます。genConcreteWsdlコマンドの場合は、ターゲットにはファイルが想定されます。
output引数は、通常earおよびwar引数とともに使用されます。
packageName <String>
JAX-RPCマッピング・ファイルにパッケージ名が宣言されていない場合に、生成されたクラス用に使用されるパッケージ名を指定します。packageNameが指定されておらず、マッピング・ファイルでも宣言されていない場合、パッケージ名はWSDLのターゲットの名前空間から導出されます。
portName <String>
WSDLドキュメント内のポート名を指定します。この引数により、<port name="...">WSDL要素に値が移入されます。
ポート名を指定しなかった場合、デフォルトのポート名は、トランスポートおよびSOAPのバージョンかまたはWSIFタイプに基づいて設定されます。デフォルトのポート名は次のいずれかの値になります。
portTypeName <String>
生成されるWSDL内で使用されるポート・タイプ名を指定します。この引数により、<portType name="..."> WSDL要素に値が移入されます。
restSupport <true|false>
Representational State Transfer(REST)のサポートをこのWebサービスに対して有効にするかどうかを指定します。デフォルト値はfalseです。
RESTサービスを使用すると、HTTP GETおよびPOSTコマンドでサービス・オブジェクトを取得および変更できるようになります。また、REST Webサービスには、SOAPエンベロープではなくXML文書を使用したメッセージ送信の機能もあります。
schema <String>
XMLスキーマ・ドキュメントへの相対パスまたはURLを指定します。この引数により、値タイプをWebServicesAssemblerに生成させるのではなく、値タイプのスキーマを指定できます。この引数は、JAX-RPCマッピング・ファイルと組み合せて使用する必要があります。
schema引数は、コマンドラインまたはAntタスクで複数回使用できます。Antタスクでは複数のタグとして書き込み、value属性を指定します。例18-2に、Antタスクにおけるschemaの複数のインスタンスを示します。
<oracle:genValueTypes packageName="com.mycompany" output="build"> <oracle:schema value="otherSchema.xsd"/> <oracle:schema value="mySchema.xsd"/> </oracle:genValueTypes>
searchSchema <true|false>
WSDLにリストされているスキーマにあるすべての型を処理するかどうかを指定します。この引数をtrueに設定すると(デフォルト)、すべての型が処理されます。これは、スキーマ内にはあるがWSDLから直接には参照されない型を使用するWebサービス実装の使用時に便利です。この引数をfalseに設定すると、WSDLから参照されない型は処理されません。
serviceName <String>
サービス名を指定します。serviceName引数には、生成済またはパッケージ済のWSDLファイル(serviceName.wsdl)およびマッピング・ファイル(serviceName-java-wsdl-mapping.xml)を指定します。また、この引数は、ボトムアップ方式Webサービス・アセンブリにおいて、<service name="..."> WSDL要素の値の指定も行います。
この引数をトップダウン方式でのWebサービスとプロキシのアセンブリで使用すると、WSDLでは、この名前のサービスが見つかるものと予期します。この場合、<service name="..."> WSDL要素の値は変更されません。
strictJaxrpcValidation <true|false>
サービス・エンドポイント・インタフェース、例外および値タイプを、すべてのJAX-RPC検証規則に関して検証するかどうかを設定します。この引数を指定しないかtrueに設定すると(デフォルト)、次の妥当性チェックが実行されます。
java.rmi.Remoteが実装されているか。
java.rmi.RemoteExceptionがスローされるか。
これらの妥当性チェックのいずれかが失敗した場合、処理が停止し、インタフェースの問題点を記載したエラーがスローされます。
この引数をfalseに設定した場合は、サービス・エンドポイント・インタフェースでのjava.rmi.Remoteの実装や、メソッドでのjava.rmi.RemoteExceptionのスローが不要になります。ただし、メソッドに、JAX-RPC規則に準拠しないパラメータや例外がある場合は、メソッドは無視され、処理されません。
この引数をfalseに設定すると、Beanや例外の場合に、Bean(または例外)の無効なプロパティが無視されます。有効なプロパティは処理され、WSDLに追加されます。この場合の動作では、ユーザーが予期しないワイヤ・レベルの書式が生成されることがありますので、注意してください。無効なプロパティの場合、WebServicesAssemblerにより警告がスローされます。
useDimeEncoding <true|false>
添付ファイル付きSOAPメッセージのケーブル上でのストリーミングにDIMEエンコーディングを使用するかどうかを指定します。useDimeEncodingをtrueに設定すると、添付ファイルにはMIMEのかわりにDIMEエンコーディングが使用されます。デフォルト値はfalseです。
この引数を使用すると、<use-dime-encoding>要素がoracle-webservices.xmlに追加されます。
war <file name or directory name>
生成するWARの名前を指定します。ファイルを指定する場合、拡張子は.warである必要があります。ディレクトリを指定する場合は、WARの内容が指定されたディレクトリに書き込まれます。次の例では、distディレクトリにWARファイルmyService.warを作成しています。
-war dist/myService.war
次の各項目は、WebServicesAssemblerによってwar引数の値がどのように解釈されるかについての説明です。
war引数の値は、拡張子".war"のあるファイル名で終わる場合(前述の例を参照)、この名前のWARファイルがwar引数によって指定された位置に作成されます。output引数は、WARファイルの位置の決定には使用されません。
output引数の値を指定してwar引数を指定しないと、WARはEAR内に配置されます。EAR内でのWARファイルの名前は、appName.warになります。 セッション状態の動作の制御には、次の引数を使用できます。
callScope <true|false>
サーバントがコールごとに作成され、コール後はガベージ・コレクションされるかどうかを指定します。デフォルト値はfalseです。callScopeとsessionの両方をtrueに設定すると、エラーがスローされます。
値をtrueに設定してこの引数を使用すると、<param name="scope">call</param>要素がoracle-webservices.xmlに追加されます。
recoverable <true|false>
セッション状態のあるアプリケーションをリカバリ可能にするかどうかを指定します。この引数は、サービスが、セッション・スコープを持つステートフルWebサービスとして公開されているときにのみ使用できます。デフォルトであるtrueでは、セッション状態が保持されます。リカバリ可能にすると、ブールの要素<distributable>がweb.xmlに追加されます。リカバリ可能とは、対話しているノードがダウンした場合に、サービスが分散環境内でリカバリできることを意味します。つまり、Webサービスの状態も分散可能である必要があります。
recoverableがfalseの場合は、<distributable>要素はweb.xmlに追加されません。
session <true|false>
HTTPセッションの期間、サーバント・インスタンスを保持することを指定します。この引数が有効なのはHTTPトランスポートの場合のみです。セッション・タイムアウトは、timeout引数によってチューニングできます。デフォルト値はfalseです。timeoutが設定されると、sessionがデフォルトでtrueに設定されます。callScopeとsessionの両方をtrueに設定すると、エラーがスローされます。
この引数を使用すると、<param name="scope">session</param>要素がoracle-webservices.xmlに追加されます。
timeout <int>
セッションの開始からタイムアウトまでの秒数を指定します。デフォルト値は60秒です。この値を0または負の数値に設定すると、セッションはタイムアウトしません。
この引数に値を設定すると、session引数は自動的にtrueに設定されます。session引数がtrueで、timeoutが設定されていない場合は、セッションは60秒後にタイムアウトになります。
この引数を使用すると、<param name="session-timeout">value</param>要素がoracle-webservices.xmlに追加されます。この場合、valueはtimeoutに指定された整数値です。
corbaAssembleコマンドで使用できる引数は、次のとおりです。これらの引数を使用して、CORBAサーバント・オブジェクトによりWebサービスをアセンブルする方法を制御できます。
corbanameURL <String>
CORBAネーミング・サービスを使用した、CORBAオブジェクトのロケーティング用URLを指定します。
corbaObjectPath <String>
CORBAオブジェクトへのパスを指定します。
idlFile <String>
CORBA idlファイルの位置を指定します。
idlInterfaceName <String>
Webサービスを生成するベースとなるidl内のインタフェースの名前を指定します。
idljPath <String>
IDL-to-Javaコンパイラ(idlj)を格納するディレクトリのパスがpathに未指定の場合に、それを指定します。
ORBInitialHost <String>
ORBのホスト名を指定します。
ORBInitialPort <String>
ORBのポートを指定します。
ORBInitRef <String>
ORBの初期参照を指定します。
これは、データベース・アーチファクトからWebサービスをアセンブルするコマンドの引数です。データベース・アーチファクトには、PL/SQLストアド・プロシージャ、SQL文、Oracleアドバンスト・キュー(AQ)、OracleデータベースにあるJava VMのJavaクラスなどがあります。
aqConnectionFactory <String>
公開されるAQに対するOracle Streams AQ JMSキューのコネクション・ファクトリのJNDI位置を指定します。
aqConnectionLocation <String>
公開されるAQに接続するOracle Streams AQ JMSキュー・コネクションのJNDIの位置を指定します。
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 <String>
データベースのJDBC URLを指定します。この引数は、コード生成時のデータベース接続を目的として、dbUser引数とともに使用されます。
dbJavaClassname <String>
Webサービスとして公開するサーバー・サイドJavaクラスの名前を指定します。
dbUser <String>
user/passwordの形式でデータベースのスキーマとパスワードを指定します。この引数は、コード生成時のデータベース接続を目的として、dbConnection引数とともに使用されます。
コマンドラインでWebServicesAssemblerを起動してデータベースにアクセスする際に、-dbUserを使用してパスワードを指定しないと、パスワードの入力を要求されます。これは、パスワードがクリア・テキストで表示されるのを防ぐためです。
jpubProp <String>
Oracle JPublisher変換プロセスを制御するプロパティの入ったファイルの名前を指定します。
|
関連資料
|
sql <String>
sql引数の値は、ともに使用するのがaqAssembleであるかplsqlAssembleであるかに応じて意味が異なります。
aqAssemble: aqAssembleとともに使用する場合は、sqlの値にはAQキュー名を指定します。
plsqlAssemble: plsqlAssembleとともに使用する場合は、sqlの値にはPL/SQLパッケージ名を指定します。
sql引数は、大/小文字が区別されるSQL文内の名前を処理できます。たとえば、次のSQL文での引用符の使用は、パッケージ名SIMpleで大/小文字が区別されていることを示します。
create package "SIMple" as procedure foo; end;
コマンドラインでsql引数のターゲットとしてSIMpleパッケージ名を使用するには、次のように入力します。
-sql '"SIMple"'
Antタスクで使用するには、次のように入力します。
sql=""SIMple""
いずれの場合もSIMpleを囲む引用符が必要です。引用符とパッケージ名はOracle JPublisherに渡されます。Oracle JPublisherでは、引用符を使用してデータベース内の名前と対照して識別子を解決します。
sqlstatement <String>
Webサービスとして公開するDML文またはSQL問合せを指定します。
methodName=<statement>
methodNameは、生成されるWebサービスに含まれる、SQL文に対応する操作名を示します。
:{param_name param_sql_type}
この例において、param_nameにより、生成されるWebサービスにおけるパラメータとしての識別子が定義され、param_sql_typeにより、そのパラメータのSQLタイプ名が定義されています。
sqlstatement引数は、ストアド・プロシージャの指定には使用できません。
WebServicesAssembler AntタスクにSQL文を渡すときは、正しく引用符が付けられていることを確認する必要があります。sqlstatementの値には、表18-4に示すように、標準のXML引用符を使用して引用符を付けることができます。
| 記号 | 引用符 |
|---|---|
|
& |
& |
|
" |
" |
|
< |
< |
|
> |
> |
|
' |
' |
複数のsqlstatement引数をコマンドラインまたはAntタスクに指定できます。Antタスクでは複数のタグとして書き込み、value属性を使用します。例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>:{mysal NUMBER}"/> </oracle:sqlAssemble>
sqlTimeout <int>
データベース操作のタイムアウトを秒単位で指定します。データベース操作には、PL/SQLストアド・ファンクションまたはPL/SQLストアド・プロシージャの起動、SQL問合せおよびDML文があります。デフォルトは0です。つまり、サービスはタイムアウトしないということです。
sysUser <String>
SYS権限のあるユーザーの名前とパスワードを、dbSysUser/syspasswordの形式で指定します。この引数を使用すると、コード生成時にPL/SQLおよびJavaラッパー・コードがデータベースに自動的にインストールされます。
useDataSource <true|false>
useDataSource引数は、コマンドラインやAntタスクで、wsifDbBindingまたはwsifDbPort引数とともにのみ、指定できます。useDataSourceをこれらのいずれの引数もなしに指定した場合は、エラーがスローされます。
useDataSource引数により、dataSource引数の値をWSDLのportタグで使用するかどうかを決定します。useDataSourceを指定しないか、trueの値に指定した場合は、コマンドラインまたはAntタスクで使用したdataSource値がWSDLのportタグで使用されます。useDataSourceをfalseの値に指定した場合は、コマンドラインまたはAntタスクで使用したdbConnection値がWSDLのportタグで使用されます。
wsifDbBinding <true|false>
この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF SQLバインディングを追加する際に使用します。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF SQLバインディングが生成されます。この引数のデフォルト値はfalseです。
wsifDbPort <true|false>
この引数は、ボトムアップ方式Webサービス・アセンブリで、複数のポートに対するデータベース・リソースのWSIFバインディングをWSDLに追加する際に使用します。使用できるのはAntタスクでのみです。
次の引数は、JMSエンドポイントWebサービスのEARまたはWARディレクトリをアセンブルするために、jmsAssembleコマンドで使用できます。
|
関連資料
|
次の引数の中で、replyToConnectionFactoryLocation、replyToQueueLocation、sendConnectionFactoryLocationおよびsendQueueLocationは、JMSトランスポートでもJMSアセンブリでも使用できます。
deliveryMode <String>
JMSDeliveryModeヘッダー・フィールドのデフォルト値を指定します。このフィールドの値が、メッセージの送信時に指定される配信モードになります。JMS仕様によってサポートされているdeliveryModeの値は、PERSISTENTおよびNON_PERSISTENTです。
genJmsPropertyHeader <true|false>
デフォルトでは、JMSエンドポイントWebサービスは、生成されるWSDLに定義されるSOAPヘッダーの、次のJMSメッセージ・プロパティを必ず公開します。
JMS固有ヘッダーおよびそのバインディングに対応するスキーマ定義は、WSDLに含まれます。この引数をfalseに設定すると、ワイヤSOAPメッセージのOracleJmsPropertiesが実行時に無視されます。デフォルト値はtrueです。
jmsTypeHeader <String>
この引数の値を使用して、JMSメッセージ用のJMSTypeヘッダー・フィールドのデフォルト値を指定します。JMSメッセージは、send操作によってJMS宛先に伝播されるメッセージです。jmsTypeHeaderの値には、たとえばMy Quote Messageを指定できます。デフォルト値はありません。
linkReceiveWithReply <true|false>
receive操作を返信先にリンクするかどうかを決定します。この引数をtrueに設定した場合は、受信先/受信コネクション・ファクトリまたは返信先/返信コネクション・ファクトリのいずれかを設定する必要があります。デフォルト値はfalseです。
payloadBindingClassname <String>
データ・バインディングが使用されていない場合は、javax.jms.ObjectMessageインスタンスのコンテンツ・オブジェクトの完全修飾Javaクラス名です。このコンテンツはJava値タイプではなく、XMLフラグメントです。有効な値はjava.lang.Stringとjavax.xml.soap.SOAPElementのみです。デフォルト値はjava.lang.Stringです。
priority <int>
JMSメッセージのJMSメッセージ優先度ヘッダー・フィールドのデフォルトの整数値を指定します。JMSメッセージは、send操作によってJMS宛先に伝播されるメッセージです。0〜9の値を指定できます。0が優先度最低、9が最高になります。
receiveConnectionFactoryLocation <String>
receive操作に使用されるJMS ConnectionFactoryのJNDI名。ConnectionFactoryのタイプは、receive宛先との整合性が必要とされます。デフォルト値はありません。
receiveQueueLocation <String>
receive操作に使用されるJMSキューのJNDI名。receiveQueueLocationとreceiveTopicLocation引数は相互排他的で、一緒に設定することはできません。デフォルト値はありません。
receiveTimeout <int>
この引数の値を使用して、メッセージ取得のためにreceiveメソッドがブロックされる時間のデフォルト値を指定します。receiveTimeout値は秒単位で表します。デフォルト値は0です。つまり、ブロックは失効せず、コールは無期限にブロックされます。
receiveTopicLocation <String>
receive操作に使用するJMSトピックのJNDI名。デフォルト値はありません。receiveQueueLocationとreceiveTopicLocation引数は相互排他的で、一緒に設定することはできません。
replyToConnectionFactoryLocation <String>
すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSコネクション・ファクトリのJNDI名を指定します。ConnectionFactoryのタイプは、返信先との整合性が必要とされます。デフォルト値はありません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。
JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するすべてのWebサービス操作のデフォルトの返信先として使用するJMS ConnectionFactoryのJNDI名を指定します。
replyToQueueLocation <String>
すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSキューのJNDI名を指定します。デフォルト値はありません。replyToQueueLocationとreplyToTopicLocation引数は相互排他的で、一緒に設定することはできません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。
JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するすべてのWebサービス操作のデフォルトの返信先として使用するJMSキューのJNDI名を指定します。
replyToTopicLocation <String>
すべてのsend操作JMSメッセージのデフォルトの返信先として使用するJMSトピックのJNDI名を指定します。デフォルト値はありません。replyToQueueLocationとreplyToTopicLocation引数は相互排他的で、一緒に設定することはできません。
sendConnectionFactoryLocation <String>
JMS send操作のためのコネクションの取得に使用するJMS ConnectionFactoryのJNDI名を指定します。ConnectionFactoryのタイプは、send宛先との整合性が必要とされます。デフォルト値はありません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。
JMSトランスポートにこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するWebサービス操作のコネクションの取得に使用するJMS ConnectionFactoryのJNDI名を指定します。
sendQueueLocation <String>
JMS send操作に使用するJMSキューのJNDI名を指定します。デフォルト値はありません。sendQueueLocationとsendTopicLocation引数は相互排他的で、一緒に設定することはできません。この引数は、JMS Webサービス・アセンブリやJMSトランスポートで使用できます。
JMSトランスポートでこの引数を使用する場合は、ケーブルでSOAPメッセージを送信するWebサービス操作に使用するJMSキューを指定します。
sendTopicLocation <String>
send操作に使用するJMSトピックのJNDI名。デフォルト値はありません。sendQueueLocationとsendTopicLocation引数は相互排他的で、一緒に設定することはできません。
timeToLive <int>
この引数の値には、JMS send操作のデフォルトのtime-to-live(TTL)値を指定します。timeToLiveの値は秒単位で表し、相対値です。絶対値ではありません。メッセージの送信時に、その有効期限がJMS sendメソッドに指定されたTTL値と現行グリニッジ標準時(GMT)の値の合計として算定されます。この引数を設定しないか0に設定した場合は、メッセージは失効しません。
topicDurableSubscriptionName <String>
この引数の値を一意のIDとして使用し、トピックのreceive操作の永続サブスクリプションを登録します。デフォルト値はありません。
この引数を使用して、生成されるプロキシ・コードの内容を制御できます。
endpointAddress <URL>
Webサービスへの接続に使用するエンドポイント・アドレスのURLを指定します。この引数を使用すると、WSDLのエンドポイント・アドレスは無視されます。
genJUnitTest <true|false>
genJUnitTestをtrueに設定すると、Webサービス内の公開対象メソッドごとにJunitテストが作成され、サービス・エンドポイント・インタフェースと同じディレクトリに格納されます。作成されたJunitテストはテンプレートにすぎません。メソッドに実際のテスト・コードを供給する必要があります。デフォルト値はfalseです。
Webサービスのデプロイの実行方法の制御には、次の引数を使用できます。
appendToExistingDDs <true|false>
新しいWebサービスのエントリを既存のデプロイメント・ディスクリプタに追加するのかまたはそれらを上書きするのかを設定します。この引数によって影響されるデプロイメント・ディスクリプタは、oracle-webservices.xml、web.xmlおよびwebservices.xmlです。
この引数をtrueに設定すると、出力位置のデプロイメント・ディスクリプタはすべて、新しいサービスに必要なエントリで更新されます。falseの場合、出力位置に既存のデプロイメント・ディスクリプタはすべて上書きされます。デフォルト値はfalseです。
|
関連項目
|
context <String>
Webアプリケーションのルート・コンテキストを指定します。contextには空の文字列は指定できません。contextに値を指定しなかった場合、そのデフォルト値は次のように決定されます。
appName引数がサポートされている場合は、contextのデフォルト値はappName引数の値になります。appName引数がサポートされていない場合は、デフォルト値はWSDLにおける最初のサービス名になります。
genApplicationDescriptorが使用されない場合、contextのデフォルト値は、-web.warまたは.war拡張子を除いたWARファイル名になります。
バージョン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引数の値と連結することで作成されます。
ddFileName <String>
Webサービスに割り当てる設定を含んだoracle-webservices.xmlデプロイメント・ディスクリプタを指定します。この引数を使用しなかった場合は、oracle-webservices.xmlデプロイメント・ディスクリプタが生成されます。
*Assembleコマンドでこの引数を使用すると、管理およびカスタム・シリアライズの情報が指定されたファイルからアーカイブ内のoracle-webservices.xmlファイルにコピーされます。
WebServicesAssemblerにより、指定された名前のファイルが見つからない場合、処理が停止されます。
appendToExistingDDsとddFileName引数は、コマンドライン呼出しまたはAntタスクの中で一緒に使用できます。
|
関連項目
|
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がURLでありHTTPプロキシ・サーバーを使用するネットワーク上にある場合、Http*で始まる引数はWSDLへのアクセスに役立ちます。
fetchWsdlImports <true|false>
WSDLとそれにインポートされるものすべてについてローカル・コピーを作成するかどうかを指定します。fetchWsdlImportsをtrueに設定すると、指定したWSDLとそれにインポートされるものすべてがWARにコピーされます。falseの場合は、指定したWSDLのみがWARにコピーされます。デフォルト値はfalseです。
この引数は、通常、デプロイに伴ってWSDLをパッケージ化する必要があるときに使用されます。これにより、各ランタイム呼出しに対するコールアウトでリモート・スキーマが必要とされる場合に発生する可能性のあるオーバーヘッド、信頼性の欠如、セキュリティ、変更の脅威に関する問題が回避されます。WebサービスにWSDLとそのスキーマ・インポートをパッケージ化するのは、トップダウン方式でのアセンブリの場合のみです。
httpNonProxyHosts <String>
HTTPプロキシを使用しないホストの名前を指定します。ホストが複数ある場合は、「|」で区切ります。たとえば、localhost|127.0.0.1のようになります。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。
httpProxyHost <String>
HTTPプロキシ・ホストの名前を指定します。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。
httpProxyPort <int>
HTTPプロキシのポート番号を指定します。この引数は、ホストがHTTPプロキシ・サーバーを使用するネットワーク上にあるURLの場合に、WSDLを取得する際に役立ちます。
importAbstractWsdl <true|false>
wsdl引数で指定されたWSDLを、生成されるWSDLにインポートするかどうかを指定します。trueの場合、WSDLファイルが、生成されるWSDLにインポートされます。falseの場合は、生成されるWSDLの要素と元のWSDLの要素が単一の出力ファイルに書き込まれます。デフォルト値はfalseです。
wsdl <String>
WSDLドキュメントの絶対ファイル・パス、相対ファイル・パスまたはURLを指定します。たとえば、http://host:80/services/myservice?WSDLとmyservice.wsdlがこの引数に対する有効な値です。
ネットワークでHTTPプロキシ・サーバーが使用されており、WSDLがURLである場合は、必要に応じて、httpNonProxyHosts、httpProxyHostおよびhttpProxyPortの各引数を設定します。
生成されるWSDLの内容の制御には、次のオプションを使用できます。
createOneWayOperations <true|false>
この引数をtrueに設定すると、voidを戻すメソッドがレスポンス・メッセージを持たなくなります。指定しないかfalseに設定すると、レスポンス・メッセージは空になります。デフォルト値はfalseです。
genQos <true|false>
サービスのクオリティ(QOS)情報を機能アサーションの形式でWSDLに追加するかどうかを決定します。機能アサーションは、oracle-webservices.xmlデプロイメント・ディスクリプタ内のWebサービス管理構成から導出されます。genQosをtrueに設定すると、機能アサーションがWSDL内に生成されます。また、Webサービス管理構成を格納するoracle-webservices.xmlデプロイメント・ディスクリプタに、ddFilename引数を設定することも必要です。この引数のデフォルト値はfalseです。
qualifiedElementForm <true|false>
WSDL内にある各生成済スキーマのelementFormDefault要素が、qualifiedまたはunqualifiedのどちらに設定されているかを判別します。
elementFormDefault要素の値は、ローカルに宣言されている要素を、インスタンス・ドキュメント内ではターゲット名前空間で修飾する必要があるかどうかを示します。この要素の値がunqualifiedである場合は、ローカルに宣言された要素をターゲット名前空間で修飾することはできません。値がqualifiedである場合は、ローカルに宣言された要素をターゲット名前空間で修飾する必要があります。
elementFormDefault要素の値をunqualifiedに設定するには、qualifiedElementForm引数をfalseに設定します。要素の値をqualifiedに設定するには、引数をtrueに設定します。qualifiedElementForm引数のデフォルト値はtrueです。
singleService <true|false>
WSDL内に定義された各サービスに対して単一ポートを生成するのか複数ポートを生成するのかを決定します。trueの場合は、WebServicesAssemblerにより、複数のポートに対して単一のサービス(ポート・タイプごとに1つのサービス)が生成されます。falseの場合は、WebServicesAssemblerにより、複数のサービス、すなわち単一ポートごとに1つのサービスが生成されます。デフォルトはfalseです。
soapVersion <1.1|1.2|1.1,1.2>
WSDLドキュメントに対するSOAPのバージョンを指定します。使用可能な値は、1.1、1.2または1.1,1.2です。デフォルト値は1.1です。
値1.1,1.2は、WebServicesAssemblerが2つのバインディングとともに2つのポートを作成することを意味します。1つのポートとバインディングがバージョン1.1をサポートし、もう1つのポートとバインディングがバージョン1.2をサポートします。各ポートは異なるURLにバインドする必要があります。つまり、同じURLアドレスを使用して両方のバージョンを同時にサポートすることはできません。
targetNamespace <String>
生成されるWSDL内に使用するターゲット名前空間を指定します。
targetNamespaceの値は、仕様に準拠しているHTTP URL、準拠していないHTTP URL、またはURIであってもかまいません。targetNamespaceの値は、次のようにしてパッケージ名にマップされます。
http://hello.demo.oracle.comというターゲット名前空間は、パッケージ名com.oracle.demo.helloにマップします。
http://hello.demo.oracleというターゲット名前空間は、パッケージ名hello.demo.oracleにマップします。
_)で区切られた単一の識別子にマップされます。次に例を示します。urn:oracle.demo.helloというターゲット名前空間は、識別子oracle_demo_helloにマップします。
ベスト・コーディング・プラクティスのためには、次の推奨事項に従ってください。
パッケージ名com.oracle.demo.helloに対しては、-targetNamespace http://hello.demo.oracle.comを使用します。
パッケージ名oracle.demo.helloに対しては、-targetNamespace http://oracle.demo.helloを使用します。
|
注意
次のように、URNを
このようにすると、サービスおよびサービス要素が2つの異なる場所にマップします。サービスは 意図的または非意図的に、サービスとサービス要素が異なるディレクトリに生成される可能性のある他の方法については、「Webサービスとメッセージ部分が異なるディレクトリに生成される」を参照してください。 |
typeNamespace <String>
生成されるWSDL内のスキーマ型に使用する型名前空間を指定します。指定した名前は必ず使用され、破棄されません。
wsdlTimeout <int>
WebServicesAssemblerがリモートWSDLリソースのHTTPまたはHTTPSリクエストへのレスポンスを待機する上限秒数を指定します。デフォルト値は60秒です。
WebServicesAssemblerでは、デフォルトで、ホストからWSDL定義を求めるHTTPリクエストへのレスポンスを受け取るのを1分間待機します。この引数を使用して、デフォルトの上限待機時間を上書きできます。値0は、WebServicesAssemblerがプラットフォームによって設定される時間の間、待機するように指定します。
この引数は、HTTPまたはHTTPSを使用して行われたリクエストに対してのみ適用されます。リクエストが別のプロトコルを使用して行われている場合は無視されます。
生成されるWSDL、つまりWebサービスによって使用されるメッセージ書式の制御には、次の引数を使用できます。
mtomSupport <true|false>
ボトムアップ方式またはトップダウン方式のWebサービス・アセンブリに対し、この属性は、適切な内容(base64binary)のメッセージをMTOM書式の添付ファイルとしてエンコードするかどうかを指定します。この属性のデフォルト値はfalseです。
この属性を使用すると、<mtom-support>要素がoracle-webservices.xmlファイルに追加されます。
style <document-bare|document-wrapped|rpc>
ボトムアップ方式Webサービス・アセンブリの場合、この引数により、生成されるWSDL内のメッセージ書式のstyle属性が指定されます。可能な値は、document-bare、document-wrappedおよびrpcです。デフォルト値はdocument-wrappedです。
use <literal|encoded>
ボトムアップ方式Webサービス・アセンブリの場合、この引数により、生成されるWSDL内のメッセージ書式のuse属性が指定されます。可能な値は、literalおよびencodedです。デフォルト値はliteralです。
Javaファイルの生成方法の制御には、次のオプションを使用できます。
dataBinding <true|false>
trueの場合、WebServicesAssemblerでは、スキーマ内の全要素に対して、JAX-RPCデフォルト・タイプ・マッピング規則に従うJava値タイプを生成しようとします。WebServicesAssemblerではサポートしていないタイプを検出した場合、javax.xml.soap.SOAPElementを使用してそのタイプを表現します。falseの場合、WebServicesAssemblerでは、検出したすべてのスキーマ型に対してSOAPElementを使用します。デフォルト値はtrueです。
mapHeadersToParameters <true|false>
生成されるJavaコード内の各メソッド用のパラメータに、WSDLで定義されているSOAPヘッダーをマップするかどうかを指定します。デフォルト値はtrueです。
overwriteBeans <true|false>
クラスパスにクラスがすでに存在する場合でも、スキーマ型用にBeanを生成するかどうかを指定します。デフォルト値はfalseです。
unwrapParameters <true|false>
この引数はdocument-literal操作に対してのみ設定でき、その他のメッセージ書式では無視されます。通常、document-literal操作には、単一入力スキーマ型と単一出力スキーマ型があります。これらのスキーマ型はラッパーとも呼ばれます。unwrapParametersをfalseに設定すると、生成対象のサービス・エンドポイント・インタフェースが、入力パラメータおよび戻り型をラップするラッパーとともに生成されます。たとえば、ラップされたパラメータのあるメソッドは次のようになります。
public EchoResponse echo(EchoRequest p) throws RemoteException;
unwrapParametersをtrueに設定すると(デフォルト)、戻り型とレスポンス・タイプがアンラップされます。通常はこの方が使いやすくなります。特にタイプが単純な場合はそうです。たとえば、アンラップされたパラメータのあるメソッドは次のようになります。
public String echo(String string) throws RemoteException;
valueTypeClassName <String>
java.util.Collectionおよびjava.util.Mapに使用されるJAX-RPC値タイプの完全修飾クラス名を指定します。この引数により、サービス・エンドポイント・インタフェースによって直接参照されないこれらのクラスのスキーマを生成できます。
valueTypeClassName引数は、コマンドラインまたはAntタスクで複数回使用できます。Antタスクでは、複数のタグとして書き込み、name属性を使用します。例18-4に、valueTypeClassNameの複数インスタンスを使用してtClass1、tClass2およびtClass3タイプ・クラスのスキーマを生成する方法を示します。
<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 <String>
WSDLから生成するすべての値タイプのパッケージ名の接頭辞を指定します。この引数により、値タイプ・パッケージ名をサービス別にグループ化できます。
すべての値タイプ・クラスが、指定されたパッケージ名で開始されるようになります。値タイプのパッケージ名は、デフォルトで、スキーマの複合型の名前空間に基づいて付けられます。この引数を使用すると、名前空間から導出されたパッケージ名に接頭辞を付けられます。
たとえば、valueTypePackagePrefixをmyappに設定し、型のターゲット名前空間がhttp://ws-i.org/である場合、パッケージ名はmyapp.org.ws-iになります。
WSDL名前空間のJavaパッケージへのマッピングをより詳細に制御するには、JAX-RPCマッピング・ファイルを使用します。名前空間のパッケージへのマッピングがJAX-RPCマッピング・ファイルに定義されている場合は、valueTypePackagePrefix引数は無視されます。
|
関連項目
|
wsifEjbBinding <true|false>
この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF EJBバインディングを追加する際に使用します。trueの場合は、EJBホーム・インタフェースclassNameおよびjndiNameを指定する必要もあります。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF EJBバインディングが生成されます。デフォルト値はfalseです。
wsifEjbBinding、wsifJavaBindingおよびwsifDbBinding引数は、相互排他的です。1つのコマンドラインまたはAntタスクでこれらの引数が2つ以上使用されると、例外がスローされます。
wsifJavaBinding <true|false>
この引数は、ボトムアップ方式Webサービス・アセンブリで、WSDLにWSIF Javaバインディングを追加する際に使用します。trueの場合は、Java実装クラスのclassNameを指定する必要もあります。WSDLには、SOAPバインディングに加えて、ネイティブのWSIF Javaバインディングが生成されます。デフォルト値はfalseです。
wsifEjbBinding、wsifJavaBindingおよびwsifDbBinding引数は、相互排他的です。1つのコマンドラインまたはAntタスクでこれらの引数が2つ以上使用されると、例外がスローされます。
WSDL 1.1仕様では、様々な要素定義が、WSDLドキュメントの特定の名前空間内で同じ名前を持つことが許されています。このため、WSDLからJavaへのマッピングの際に、名前の競合が発生する可能性があります。
JAX-RPC仕様の4.3.12項では、マッピングされたJava識別子に接尾辞を追加することで名前の競合を解決するルールの概要が指定されています。次のコマンドは、Javaファイルを生成するときにこのルールを利用しています。
参考までに、JAX-RPC仕様の内容を表18-5に示します。ここでは、WSDLからJavaへのマッピングで名前の競合を防ぐためのルールと接尾辞が指定されています。名前の競合がない場合は、これらの接尾辞を使用する必要はありません。
次の各項では、WebServicesAssemblerにより名前空間とパッケージ名のマッピングに使用されるデフォルト・アルゴリズムについて説明します。
WebServicesAssemblerでは、パッケージ名からデフォルトの型名前空間が構成されます。パッケージ名が標準の最上位のドメイン名または国際標準化機構(ISO)の国コードで始まる場合は、WebServicesAssemblerによりパッケージ名が前後逆になり、HTTP URL内に配置されます。そうでない場合は、パッケージ名がそのままHTTP URL内に配置されます。
たとえば、パッケージcom.oracle.mytypesの型名前空間は、http://mytypes.oracle.com/になります。パッケージexamples.chapter1に対する型名前空間は、http://examples.chapter1/になります。
次の各項では、WebServicesAssemblerのマッピング・アルゴリズムがJavaのアーチファクトと型をWSDLアーチファクトとXMLスキーマ型にマッピングする手順について説明します。
次の手順により、JavaアーチファクトがWSDLアーチファクトにマッピングされます。
targetNamespaceの値によって取得します。この引数の詳細は、「targetNamespace」を参照してください。
<package-mapping>要素の値を参照します。
次の手順により、Java型がXMLスキーマ型にマッピングされます。
<package-mapping>要素の値を参照します。
typeNamespaceの値によって取得します。この引数の詳細は、「typeNamespace」を参照してください。
targetNamespace属性の値を使用します。
WSDL名前空間のJavaパッケージ名へのマッピングは、Java Architecture for XML Data Binding (JAXB)仕様のバージョン2.0のアルゴリズムに基づいています。この仕様については、次のWebサイトを参照してください。
http://www.jcp.org/en/jsr/detail?id=222/
この仕様に定義されているアルゴリズムに対する例外は、次のとおりです。
httpまたはurnである場合にのみ削除するよう規定しています。この実装では、削除するスキームのセットが拡張されています。このセットに含まれているのは、http、https、ftp、mailto、file、nntp、telnet、ldap、nfs、urnおよびtftpです。
uxxxxの形式でエンコードされます。ここで、xxxxは4桁のUTF8エンコーディングです。
表18-6に、パッケージ名の名前空間へのマッピングの例をいくつか示します。
次の各項により、サービス・エンドポイント・インタフェースまたは値タイプ、およびWSDL内のこれらの各関連アーチファクトがJava名およびJava型にマッピングされます。
次の手順により、WSDLのサービス・エンドポイント・インタフェースおよび関連アーチファクトがJava名にマッピングされます。
<service-interface-mapping>要素の値を参照します。このファイルの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。
packageNameの値によって取得します。この引数の詳細は、「packageName」を参照してください。
<package-mapping>要素の値を参照します。
次の手順により、WSDLの値タイプおよびその関連アーチファクトがJava名およびJava型にマッピングされます。
<java-xml-type-mapping>要素を参照します。このファイルの詳細は、『Oracle Application Server Web Servicesアドバンスト開発者ガイド』の「JAX-RPCマッピング・ファイル記述子」を参照してください。
targetNamespaceと同じ名前空間で定義されている場合は、WebServicesAssemblerのpackageName引数の値を使用します。この引数の詳細は、「packageName」を参照してください。
<package-mapping>要素の値を参照します。
valueTypePackagePrefix引数の値からJavaパッケージ名を導出します(「valueTypePackagePrefix」を参照)。この引数の詳細は、「ルート・パッケージ名の指定方法」も参照してください。
名前空間を明示的に指定するには、typeNamespace引数を使用します。指定した名前は必ず使用され、破棄されません。
valueTypePackagePrefix引数を使用すると、指定したWSDLのスキーマにあるすべての型のルート・パッケージ名を指定できます。すべてのパッケージ名が、この値で開始されるようになります。指定された値が使用されるのは、JAX-RPCマッピング・ファイルに型名前空間とパッケージのマッピングが宣言されていない場合にかぎります。
生成されるパッケージ名が同じ値で始まる場合は、この値はパッケージ名には追加されません。これにより、com.oracle.mytypes. com.oracle.mytypesのようなパッケージが避けられます。
aqAssemble、dbJavaAssemble、plsqlAssembleおよびsqlAssembleコマンドでは、Webサービスの生成にデータベース接続が必要です。Webサービスのアセンブリ時および実行時に、データベースへの接続が行われることがあります。Webサービスのアセンブリ時では、WebServicesAssemblerにより、PL/SQLパッケージやAQキューなどのデータベース・エンティティに関する情報を取得するためにデータベースへの接続が行われます。Webサービスの実行時では、ユーザー・アプリケーションにより、データソースJNDI位置が使用され、データベース操作用にJDBC接続が取得されます。この情報は、WebServicesAssemblerにより、確実にWebサービス・ランタイム・コードに提供されます。
次の引数を使用すると、Webサービスに接続情報を提供できます。
アセンブリ時および実行時にデータベースにアクセスするには、コマンドラインまたはAntタスクでdataSource引数かdbConnectionとdbUserの組合せを使用します。
dbConnectionとdbUser引数は、通常、一緒に使用します。これらにより、アセンブリ時および実行時のデータベースへのアクセス用に、WebServicesAssemblerに対してJDBC URLとデータベースのスキーマおよびパスワードが提供されます。
dataSource引数により、WebServicesAssemblerによるアセンブリ時および実行時のデータベースへのアクセスを可能にするJNDI位置が提供されます。
dbConnectionとdbUserの値はアセンブリ時のデータベース・アクセスに、dataSourceは実行時のデータベース・アクセスに使用されます。
この項では、Antタスクを通じてWebServicesAssemblerで使用可能なその他の機能について説明します。この機能は、WebServicesAssemblerコマンドラインでは使用できません。
WebServicesAssemblerコマンドの次の引数は、コマンドラインまたはAntタスクで複数回宣言できます。
Antタスクでは、これらの引数の複数のインスタンスを別個のタグとしてリストする必要があります。別個のタグとしてリストする際、input、schemaおよびsqlstatement引数にはvalue属性が必要になります。valueTypeClassName引数ではname属性が必要となります。
たとえば、次のassembleコマンドでは、input引数の複数インスタンスを使用して、first.jar、second.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>
proxyサブタグにより、サーバー・コードのアセンブリと同時にクライアント・プロキシを生成できます。WSDLの名前が必ずしも事前に認識されないボトムアップ方式アセンブリ時には、これが最も便利です。Antタスク内でproxyサブタグを使用できるのは、次のコマンドに対してです。
proxyサブタスクには、genProxy WebServicesAssemblerコマンドに類似した機能があります。サポートされているgenProxy引数は、wsdlを除いてどれも、proxyサブタグで属性として使用できます。
output引数は属性としてサポートされていますが、genProxyで使用される場合とは異なり、必須ではありません。outputをproxyサブタグに指定しなくても、親タグで指定されたoutputの値が、src/proxyディレクトリ・パスの前に追加されて使用されます。たとえば、親タグでoutput="build"が設定されている場合、proxyサブタグの出力はbuild/src/proxyに格納されます。
次の引数をproxyサブタグの属性として使用できます。
例18-5に、packageName属性を付けた<proxy>サブタグの使用例を示します。この例では、assembleを親タグとして使用しています。
<oracle:assemble...> (or any command that supports the proxy tag) <oracle:proxy packageName="myproxy"/> </oracle:assemble>
<handler>および<port>タグを使用して、メッセージ処理情報およびポート固有情報をプロキシに追加できます。
<handler>: リクエストを、リモート・ホストに送信する前かまたはクライアントがレスポンスを処理する前に調べて必要に応じて変更するため、<proxy>のサブタグとして<handler>タグを構成できます。<handler>タグの詳細は、「Antタスクでのハンドラの構成方法」を参照してください。
<port>: 特定ポートに対してプロキシを生成するため、<proxy>のサブタグとして<port>タグを構成できます。<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属性が必要です。
<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属性が必須になります。
<oracle:assemble ... <oracle:port uri="soap11" soapVersion="1.1" name="httpSoap11Port" /> <oracle:port uri="soap12" soapVersion="1.2" name="httpSoap12Port" /> ... />
一部のAntタスクでは、子タスクとしてporttypeタグを指定できます。これにより、Webサービスへのインタフェースを複数の種類、構成できます。これらのWebServicesAssemblerコマンドのAntタスクでは、porttypeを、子タスクとして指定できます。
porttypeタグでは、Webサービスのインタフェースを指定するためのinterfaceName引数が必須になります。複数の<porttype>タグを指定する場合、各タグには<port>サブタグが含まれている必要があります。
assemble、topDownAssemble、genDDsおよびgenWsdlコマンドでporttypeを構成するときは、className属性を指定する必要があります。assembleおよびtopDownAssembleコマンドの場合は、className属性ではなくclassFileName属性を指定します。
また、WSDLに複数のポート・タイプの参照が含まれている場合は、topDownAssembleコマンドでは、ポート・タイプごとに<porttype>タグを指定する必要があります。
表18-7に、<porttype>タグで使用できる有効な属性とサブタグをまとめます。
例18-8に、Webサービスへのポート・タイプの割当て方法を示します。
... <oracle:porttype interfaceName="my.company.MyInterface" className="my.company.MyImpl"> </oracle:porttype> ...
この項の内容は、次のとおりです。
WebServicesAssemblerにより、Antタスクでハンドラおよびクライアント・ハンドラを構成できます。Antタスクを使用して、Enterprise Web Services 1.1仕様によってハンドラ用に策定されている情報をすべて構成できます。
ハンドラは、リクエスト、レスポンスまたは障害を、Webサービス・コンポーネントによる処理前に調べて、必要に応じて変更することができます。また、リクエストがコンポーネントによって処理された後でレスポンスまたは障害を調べて、必要に応じて変更することもできます。クライアント・ハンドラは、その名前が示すように、クライアント上で実行されますが、実行されるタイミングは、リモート・ホストにリクエストが送信される前、またはクライアントによってレスポンスが処理される前です。
handlerタグにより、WebServicesAssembler Antタスクでのハンドラを定義します。属性により、ハンドラの詳細を定義します。このタグと属性は、Enterprise Web Services 1.1仕様によって策定された<handler>タグとそのサブ要素に対応しています。Antタスク内でハンドラとその属性を宣言すると、対応する要素がwebservices.xmlに設定されます。
次の各項では、handlerタグで使用できる属性と子タグについて説明します。
class="class_name"
この属性により、ハンドラ実装の完全修飾クラス名を定義します。
この属性を使用すると、webservices.xmlに<handler-class>class_name</handler-class>要素が設定されます。
<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="handler_name"
この属性により、ハンドラの名前を定義します。名前はモジュール内で一意である必要があります。
この属性を使用すると、webservices.xmlに<handler-name>handler_name</handler-name>要素が設定されます。
<oracle:soapheader value="{namespace_URI}local_part"/>
この子タグにより、ハンドラによって処理されるSOAPヘッダーのQNameを定義します。value属性には、QNameのローカル部分および名前空間URIを指定します。複数のsoapheader宣言を、handler Antタスクの子タスクとして定義できます。
soapheader子タグの値は、webservices.xmlのsoap-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 ="Some_SoapRole"
この属性により、ハンドラの機能としてSOAPアクターを定義します。
この属性を使用すると、webservices.xmlに<soap-role>Some_SoapRole</soap-role>要素が設定されます。
この子タグは、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を使用します。このハンドラでは、authenticateHeaderとauthenticateHeader2の2種類のSOAPヘッダーが処理されます。
<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>
次のWebServicesAssemblerコマンドのAntタスクでは、handlerタグを子タスクとして指定できます。
handlerタグを指定可能)
ハンドラをサポートする任意のコマンドに対して、複数のハンドラを指定できます。ハンドラごとに異なる構成を設定してもかまいません。
例18-10に、複数ハンドラの構成を示します。親タグには、ハンドラをサポートする任意のタグを指定できます。
StaticStateHandlerNameハンドラが構成されます。このハンドラはmyApp.handler.StaticStateHandlerクラスによって実装され、2つの初期化パラメータSCOTTおよびTIGERを使用します。このハンドラでは、authenticateHeaderとauthenticateHeader2の2種類のSOAPヘッダーが処理されます。
myapp.handler.MyOtherHandlerクラスによって実装されたMyOtherHandlerハンドラが構成されます。 <some tag that supports handlers> <handler soaprole="Some_SoapRole" name="StaticStateHandlerName" class="myApp.handler.StaticStateHandler"> <initparam name="id" value="SCOTT"/> <initparam name="password" value="TIGER"/> <soapheader namespace="http://oracle.j2ee.ws/Header" localpart="authenticateHeader"/> <soapheader namespace="http://oracle.j2ee.ws/Header2" localpart="authenticateHeader2"/> </handler> <handler name="MyOtherHandler" class="myApp.handler.MyOtherHandler"/> </some tag that supports handlers>
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のブール型引数failonerrorを使用すると、エラーがあってもビルドが続行されます。failonerrorの値がtrueの場合は、WebServicesAssemblerでエラーが発生すると、ビルドは失敗します。値がfalseの場合は、ビルドは続行されます。デフォルト値はtrueです。
failonerror引数は任意のWebServicesAssemblerコマンドで使用できます。次の例では、assembleコマンドでエラーが発生した場合でも、処理が続行されます。
<oracle:assemble failonerror="false" ... />
mtomSupport Ant属性を使用すると、MTOMエンコード・メッセージのサポートをWebサービスおよびWebサービス・クライアントにアセンブルできます。この属性は、Antタスクでのみ使用でき、WebServicesAssemblerコマンドラインでは使用できません。
mtomSupport属性は、次のAntタスクで使用できます。
関連項目
mtomSupport属性およびその使用方法の詳細は、次の項を参照してください。
1つのアーカイブ(EARまたはWAR)に複数のWebサービスを割り当てるには、WARに入れるWebサービスごとにassembleまたはtopDownAssembleタスクをコールする必要があります。各アセンブル・タスクに対して設定する引数は、次の規則に従う必要があります。
output引数に対して同じ値を指定する必要があります。
assembleタスクのみにear引数を指定できます。この理由は、ear引数を指定すると、WARステージング・ディレクトリ(/war)の内容がアーカイブされ、EARに格納されるためです。アーカイブが作成されると、ステージング領域内のファイルは削除されます。
war引数には、output引数の値をディレクトリ名/warの前に追加した値を指定する必要があります。これは、WebServicesAssemblerのデフォルト動作では、出力ディレクトリdirectory/warがWARのステージング領域として使用されるためです。たとえば、output引数をdistに設定する場合は、war引数をdist/warに設定する必要があります。
appendToExistingDDsをtrueに設定する必要があります。最初のassembleタスクでappendToExistingDDsをtrueに設定できるのは、出力先のdirectory/warに、WebServicesAssemblerに変更させるデプロイメント・ディスクリプタ(たとえば、リソース参照付きのweb.xml)がすでに格納されている場合のみです。
assembleタスクでwar引数を指定するのは、WebServicesAssemblerにEARではなくWARを作成させる場合にかぎります。appName引数は、すべてのassembleタスクで一意である必要があります。
uri引数を指定する場合は、その値がすべてのassembleタスクで一意である必要があります。
例18-11に、EARファイルのmyApps.earに、2つのWebサービスであるfirstAppおよびnextAppを割り当てるAntタスクを示します。このコード例の詳細は次のとおりです。
output引数には、出力ディレクトリ・パスと同じ値${out.dir}が割り当てられています。
assembleコマンドでは、出力が/warディレクトリに格納されていますが、最後のassemble引数では、2つのWebサービスを格納するEARファイルが指定されています。
appendToExistingDDsが指定され、デプロイメント・ディスクリプタは、直前のコマンドによって生成されたディスクリプタに追加されるようになっています。
省略記号はさらに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サービスであるfirstApp、nextAppおよびlastAppを割り当てるAntタスクを示します。このコード例の詳細は次のとおりです。
assembleコマンドのoutput引数には、出力ディレクトリ・パスと同じ値${out.dir}が割り当てられています。
assembleコマンドでは、出力が/warディレクトリに格納されていますが、最後のassemble引数では、3つのWebサービスを格納するEARファイルが指定されています。
appendToExistingDDsも指定されており、デプロイメント・ディスクリプタは、直前のコマンドによって生成されたディスクリプタに追加されるようになっています。
省略記号はさらに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" ... />
WebServicesAssemblerでは、1つのWARに複数のWebサービスを追加する際の競合はチェックされません。次の競合により無効なアセンブリが生じますが、これはデプロイ時または実行時まで検出されません。
様々なWebサービスのWSDLファイルが同じ名前の場合、あるWSDLファイルがその他のWSDLファイルを上書きします。この競合を避けるため、様々なWebサービスにあるWSDLファイルの名前が一意になるようにします。
様々なWebサービスでクラス・ファイルに同じ名前(パッケージ名を含む)が使用されている場合、クラスのいずれかによりその他のクラスが上書きされます。これらのファイルは、実際には同一である場合もあります。たとえば、同じスキーマ型の値タイプ・クラスは、2つの異なるサービス間で共有できます。この種の競合では問題は発生しません。
同一になりえないクラスには、サービス・エンドポイント・インタフェースと実装クラスがあります。クラス・ファイルが同一でない場合は、名前を変更するか別のパッケージに格納します。
JavaクラスまたはEJBからボトムアップ方式でWebサービスを生成すると、WebServicesAssemblerによりWSDLが生成されます。WebServicesAssemblerは、生成するWSDL内のJavaメソッドの<element name="..." />属性に対して、メソッドの実パラメータの名前を使用しようとします。WSDLおよびSOAPメッセージでメソッドの実パラメータの名前を使用すると、パラメータとその対応する要素の判別が容易になります。
WebServicesAssemblerでは、次の方法、手順を使用してメソッドの実パラメータ名が取得されます。
interfaceFileName引数で指定する必要があります。
javacの-gオプションでコンパイルしておく必要があります。
この方法でパラメータ名を取得できなかった場合、あるいはクラスがロード不能になっているかまたは曖昧化している場合は、パラメータのデータ型と数値を組み合せた文字列(たとえばstring_1)がデフォルトで使用されます。
次のメソッドを表すWSDLフラグメントを、例18-13および例18-14に示します。
public String sayHello(String name)
例18-13に示すのは、WebServicesAssemblerがsayHelloメソッドのパラメータ名を取得できたWSDLフラグメントです。<element name="..."/>属性とその値が太字で強調表示されています。
<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="..."/>属性とその値が太字で強調表示されています。
<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の使用方法」を参照してください。
詳細は、次を参照してください。
|
![]() Copyright © 2006 Oracle Corporation. All Rights Reserved. |
|