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.xm
l
ファイルにより、カスタム・シリアライザの構成が容易になります。生成されるカスタム・タイプ・マッピング・ファイルは、サービス・サイド・スキーマに準拠しますが、クライアント・サイドでの使用のために若干変更することはできます。
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
です。
u
xxxxの形式でエンコードされます。ここで、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. |
|