この章では、Oracle Application Server Web ServicesプロバイダAPIの使用方法を説明します。プロバイダAPIを使用すると、JAX-RPCのような特定のサービス・エンドポイント実装計画に関係のない、Webサービス・エンドポイント用のカスタム処理ロジックを定義できます。プロバイダ・モデルを使用すると、複数のエンドポイントに対して共通の機能を提供できます。プロバイダ・モデルを使用すると、同じ機能を複数のWebサービスに組み込むのでなく、ロジックをランタイムに直接追加できます。
プロバイダを使用すると、JAX-RPC関連のフレームワークを使用せずに、メッセージ・ペイロードの検証および解析に独自のメカニズムを柔軟に選択できます。OC4Jコンテナ内で実行されるため、プロバイダは、スキーマ検証、セキュリティおよび信頼性などのコンテナのサービスを利用できます。
プロバイダを使用する場合
標準のJAX-RPCエンドポイント実装を使用中にパフォーマンス不足が判明した場合には、エンドポイント実装としてのプロバイダの使用を選択できます。プロバイダはJAX-RPCフレームワークを使用しないため、データのマーシャリングおよびアンマーシャリングは実行されません。そのため、メッセージの検証および解析メカニズムに基づいて、メッセージが処理される前の解析およびシリアライゼーション処理が少ない可能性があります。
また、プロバイダではSOAPメッセージを直接処理できるため、コンテンツベースのルーティングなど、より複雑な処理を実行できます。たとえば、最終的な宛先にルーティングする前に、インバウンド・メッセージを(中間レベルの処理を行うために)多数の中間の宛先にルーティングできます。
oracle.webservices.provider
パッケージのインタフェースおよびクラスを使用すると、独自のプロバイダを実装して使用し、SOAPメッセージを処理できます。
プロバイダ・インタフェース: 独自のプロバイダを作成するには、アプリケーションにこのインタフェースを実装する必要があります。
ProviderConfigクラス: 初期化中にプロバイダに渡される構成クラス。これはプロバイダ構成に関連する情報を表します。プロバイダもこのクラスを使用してコンテナと通信します。
MessageContextクラス: プロバイダによって起動される際に、プロバイダのprocessMessage
メソッドに渡されるコンテキスト・クラス。プロバイダ・インスタンスはこのクラスを使用して、トランスポート・プロトコル関連の情報を取得します。
HTTPConstantsクラス: コンテナによりMessageContext
に設定されるHTTPプロトコルの明確に定義された一連のプロパティが提供されます。
プロバイダ・クラスには、oracle.webservices.provider.Provider
インタフェースを実装する必要があります。これ以降の各項では、実装する必要のあるプロバイダ・インタフェースのメソッドの詳細を説明します。
public void init(ProviderConfig config) throws ProviderException;
init
メソッドは、プロバイダがロードおよび初期化されるとコールされます。メソッドをコールできるのは、プロバイダのライフサイクル中に一度のみです。init
メソッドに応じ、コンテナによってProviderConfig
のインスタンスがプロバイダに渡されます。このインスタンスは、プロバイダに関連する構成情報を提供します。ProviderConfig
インスタンスは、プロパティとServletContext
を設定および取得するメカニズムを提供します。init
およびdestroy
メソッドは、ServiceLifecycle
インタフェースがJAX-RPCサービス・エンドポイント実装(SEI)クラスにライフサイクル・メカニズムを提供するのと同じように、プロバイダにライフサイクル・メカニズムを提供します。
プロバイダはProviderConfig
インスタンスを使用して、プロパティの設定または取得を行います。プロパティがコンテキストに設定されている場合は、デプロイメント・ディスクリプタの対応する静的プロパティ・セットが上書きされます。たとえば、プロバイダでブールVALIDATION_SOAP_SCHEMA
プロパティをtrue
に設定し、コンテナでスキーマ検証を実行することができます。スキーマ検証は、WSDLが使用可能な場合にのみ実行できます。パススルー・モードでは実行できません。パススルー・モードでは、プロバイダ自体はエンドポイントとして公開されていません。VALIDATION_SOAP_SCHEMA
プロパティのデフォルト値はfalse
です。スキーマ検証は、SOAP本体の子要素のQName
値に基づいています。
起動時にロードするという適切なディレクティブが発行されると(プロバイダ・アプリケーションWARファイルのweb.xml
ファイルを使用するなど)、アプリケーションの起動時にinit
メソッドがコールされます。
public SOAPMessage processMessage(SOAPMessage request, MessageContext messageContext) throws ProviderException;
processMessage
メソッドはプロバイダの主要なアクセス・メソッドで、SOAPリクエストがプロバイダ・インスタンスにディスパッチされるたびに起動されます。processMessage
メソッドは、SOAPメッセージの処理ロジックを指定する場所です。SOAPプロトコルでは、このメソッドはSOAPMessage
インスタンスを引数として使用します。プロバイダは、このSOAPMessage
インスタンスから、SOAP本体、ヘッダーおよび添付ファイルなどのメッセージ・ペイロードの他の部分へのアクセス権を取得します。
processMessage
メソッドは、MessageContext
オブジェクトも使用します。メッセージ・コンテキストにより、特定のメッセージに対して有効なプロパティが定義されます。
このメソッドはSOAPMessage
インスタンスを戻します。インスタンスがNULLでない場合は、基礎となるトランスポート・プロトコルによってサポートされていることを前提に、プロバイダにより送信者にレスポンスが戻されます。基礎となるトランスポート・プロトコルがJMSなどの一方向プロトコルの場合には、レスポンスの送信を試行すると、サーバーのログにエラーがスローされる原因となります。戻り値は、純粋な一方向コールの場合はNULL、リクエスト・レスポンス・コールの場合はNULL以外である必要があります。
このクラスには、プロバイダ・インスタンスの構成関連の情報が含まれています。情報には、独自のデプロイメント・ディスクリプタにもリストされている詳細が含まれます。
ProviderConfig
のプロパティは、コンテナとの通信に使用されます。たとえば、ポリシー・オブジェクトの参照は、(プロバイダ実装によりProviderConfig
インスタンスへの参照が、init
メソッドの起動中に初期化された属性として維持されることを想定し)processMessage
内のProviderConfig
プロパティとして設定できます。また、プロバイダ・インスタンスのinit
メソッドとしても設定できます。コンテナによりこのポリシー・オブジェクトが読み取られ、プロバイダ・インスタンスに適切な管理機能が適用されます。
次の項では、ProviderConfig
クラスのメソッドおよびプロパティの詳細を説明します。
これらのメソッドにより、プロバイダ・インスタンスがコンテナでサービスの作成または削除を動的に実行することが可能になります。コンテナでは、テスト・ページの表示、リクエスト・メッセージのスキーマ検証およびWebサービス管理処理など、サービスに対して様々なタスクを実行できます。また、サービス登録処理も、コンテナによる登録済のサービスに対するWebサービス管理処理の実行を可能にします。
public void addService(String pathInfo, URL wsdlURL, QName wsdlPort, QName serviceName, Object policy) throws ProviderException; public void addService(String pathInfo, InputStream wsdlStream, String wsdlBaseURI, QName wsdlPort, QName serviceName, Object policy) throws ProviderException; public void addService(String pathInfo, Definition wsdl, QName wsdlPort, QName serviceName, Object policy) throws ProviderException; public void removeService(String pathInfo);
ProviderConfig
クラスのaddService
およびremoveService
メソッドをプロバイダのinit
およびprocessMessage
メソッドに起動し、それぞれ一意のURIを使用して、管理可能なサービス・エンドポイントを動的に追加および削除できます。コンテナにより、WSDLのリポジトリおよび受信リクエストのURIが含まれるWSDLのマップが、内部的に維持されます。また、Application Server Controlツールを使用してこれらの動的エンドポイントを管理すると、セキュリティ、信頼性、監査およびロギング機能を適用できます。プロバイダのMessageContext
から使用可能なURIに基づいて、プロバイダは受信リクエストの処理を決定します。
addService
およびremoveService
メソッドのどちらもpathInfo
パラメータを使用します。このパラメータには、エンドポイントの起動時にクライアントによって送信されたURLに関連する外部パス情報が含まれます。外部パス情報はサーブレット・パス形式に準拠していますが、問合せ文字列より優先され、スラッシュ(/
)文字で始まります。pathInfo
パラメータをNULL値にはできませんが、空の文字列を設定することができます。
3つの形式のaddService
メソッドが使用できます。これらはサービスへのWSDLロケーションの指定方法のみが異なります。
WSDLをURLとして指定する: この形式のaddService
メソッドを使用すると、WSDLをURLとして指定できます(URL wsdlURL
)。
WSDLを入力ストリームから読み込む: この形式のメソッドを使用すると、WSDLを入力ストリームから読み込めます(InputStream wsdlStream
)。このメソッドでは、WSDLファイルのURIを指定するパラメータも使用できます(String wsdlBaseURI
)。このパラメータの値は、プロバイダWSDL入力ストリームの相対インポートを解決するために使用します。
WSDLを Definition
オブジェクトとして指定する: この形式のメソッドを使用すると、WSDLをjavax.wsdl.Definition
オブジェクトとして指定できます。エンドポイントを動的に構成して、すでに初期化したDefinition
オブジェクトがある場合に、この署名を使用します。たとえば、メモリーに作成したDefinition
オブジェクトが、ファイル・システムのWSDLを表していない場合などです。
addService
メソッドでも、動的エンドポイントの管理機能を定義するpolicy
パラメータが使用されます。policy
パラメータは、例10-1にリストにされている構造に準拠するorg.w3c.dom.Element
である必要があります。この要素の定義は、oracle-webservices-10_0.xsd
スキーマの型としてリストされています。
例10-1 provider-policy-typeの定義
<xsd:complexType name="provider-policy-type"> <xsd:all> <xsd:element name="runtime" type="serverPortRuntimeType" minOccurs="0"/> <xsd:element name="operations" type="serverOperationsType" minOccurs="0"/> </xsd:all> </xsd:complexType>
例10-2に、oracle-webservices.xml
デプロイメント・ディスクリプタで使用されるように、この型によって定義されている構造を示します。
例10-2 policy要素のXML構造
<policy> <runtime enabled="logging,auditing,security,reliability"> <logging>…</logging> <security>…</security> <reliability>…</reliability> </runtime> <operations> <operation name="…" inputName="..." outputName="..."> <runtime> <logging>…</logging> <auditing>…<auditing> <reliability>…</reliability> </runtime> </operation> </operations> </policy>
クラスタ環境をサポートするために、ProviderConfig
クラスでは、ブール型定数PROPAGATE_DYNAMIC_ENDPOINTS
が使用できます。この定数は、次のプロパティを表します。
oracle.webservices.provider.propagateDynamicEndpoints
このプロパティにより、構成グループまたはクラスタ全体でアプリケーションのすべてのインスタンスからアクセス可能な動的エンドポイントをプロバイダで作成できます。このプロパティの使用方法の詳細は、「クラスタ環境でアクセス可能な動的なエンドポイントの作成方法」を参照してください。
このクラスには、トランスポートに依存しないメッセージ・プロパティの定義が含まれています。これらのプロパティは、processMessage
へのコールごとに更新されます。一連の標準の定数は、HTTPトランスポート用に定義されています。同じ名前のプロパティを、MessageContext
クラスから使用できます。MessageContext
クラスには、HTTP以外のトランスポート用に定義されている定数の定義も含まれています。
このクラスにより、コンテナがMessageContext
に設定するHTTPプロトコルの明確に定義された一連のプロパティが提供されます。プロバイダ・インスタンスにより、これらのプロパティが上書きされないことが保証されます。
ProviderServlet
(oracle.j2ee.ws.server.provider.ProviderServlet
)は、プロバイダ・インスタンスへのリクエストのルーティングを処理します。デプロイ後、ProviderServlet
はSOAP over HTTPの受信リクエスト用のURLをリスニングします。サーブレットでSOAPメッセージを受信すると、ProviderServlet
によりプロバイダ・インスタンスのprocessMessage
メソッドにディスパッチされます。
サーブレット・コンテナでプロバイダをホストしている場合は、プロバイダ・アプリケーションのweb.xml
デプロイメント・ディスクリプタ内の<servlet>
の<servlet-class>
サブ要素にこのサーブレットを指定します。サーブレットURLは、<url-pattern>
要素に指定されています。
例10-3に、web.xml
ファイルのフラグメントを示します。ファイルでは、<servlet-class>
要素にProviderServlet
が指定されており、<url-pattern>
要素にリスニングするURLである/LoggerService
が指定されています。このURLパターンは、Webアプリケーションのコンテキスト・ルートに関連します。
<servlet-name>
要素には、このエントリと、例10-5に示されているoracle-webservices.xml
内のプロバイダ固有の情報との間のリンクが指定されます。
例10-3 ProviderServletおよびリスニングするURLを含むweb.xmlのフラグメント
... <servlet> <servlet-name>LoggerProviderPort</servlet-name> <display-name>LoggerProviderPort</display-name> <description>JAX-RPC endpoint Provider Port</description> <servlet-class>oracle.j2ee.ws.server.provider.ProviderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>LoggerProviderPort</servlet-name> <url-pattern>/LoggerService</url-pattern> </servlet-mapping> ...
ProviderServlet
を拡張して、特定の使用方法に合うようその機能を調整できます。例10-4に、HTTP問合せ文字列に基づいて特定のリソースを取得できるようにするために、サーブレットのdoGet
メソッドをどのように拡張できるかを示します。この場合、拡張したサーブレットによって問合せ文字列が処理されない際には、リクエストが親サーブレットのdoGet
メソッドに渡されることに注意してください。受信のGETリクエストが処理されない場合の、super
へのコールに注意してください。
例10-4 superへのコールを含むProviderServletメソッドの拡張
public class ExtendedProviderServlet extends ProviderServlet{ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String queryString = request.getQueryString(); if ((queryString != null) && (queryString.equalsIgnoreCase("someotherquery"))) { response.setContentType("text/html; charset=UTF-8"); response.setStatus(HttpServletResponse.SC_OK); OutputStream outputStream = response.getOutputStream(); OutputStreamWriter writer = new OutputStreamWriter(outputStream); writer.write( "<HTML><BODY>TEST RESPONSE</BODY></HTML>" ); writer.close(); } else { super.doGet(request, response); ... }
サーブレットによって生成されたデフォルトのテスト・ページではなく、ProviderServlet
を拡張して、独自のテスト・ページ生成メカニズムを使用することもできます。
Webサービスがプロバイダを認識するようにするには、oracle-webservices.xml
およびweb.xml
デプロイメント・ディスクリプタ編集して、プロバイダの情報を追加する必要があります。Oracle JDeveloperおよびApplication Server Controlツールでは、この情報の追加はサポートされていないため手動で編集する必要があります。
Webサービスがプロバイダに対応できるようにするには、oracle-webservices.xml
デプロイメント・ディスクリプタに<provider-description>
句を追加します。例10-5に、この句を含むoracle-webservices.xml
デプロイメント・ディスクリプタのフラグメントを示します。「oracle-webservices.xmlのプロバイダ要素」では、<provider-description>
句に使用できる要素が説明されています。
例10-5 <provider-description>句を含むoracle-webservices.xmlのフラグメント
<oracle-webservices> <provider-description> <provider-description-name> some name</provider-description-name> <wsdl-file>/file location</wsdl-file> <wsdl-service-name xmlns:ns_="urn:oracle-ws">ns_:PhotoService </ wsdl-service-name> <provider-port> <provider-name>LoggerProviderPort</provider-name> <wsdl-port xmlns:ns_="urn:oracle-ws">ns_:PhotoIFPort</wsdl-port> <implementation-class>oracle.myprovider.JmsRetriever </ implementation-class > <servlet-link>LoggerProviderPort</servlet-link> <property name="connection-factory-name"> jms/ws/mdb/theQueueConnectionFactory</property> <property name="queue-name">jms/ws/mdb/theQueue</property> <policy> <runtime enabled="logging,auditing,security,reliability"> <logging>…</logging> <security>…</security> <reliability>…</reliability> </runtime> <operations> <operation name="..." inputName="..." outputName="..."> <runtime> <logging>…</logging> <auditing>…<auditing> <reliability>…</reliability> </runtime> </operation> </operations> </policy> </provider-port> </provider-description> </oracle-webservices>
トップレベルのプロバイダ要素は<provider-description>
です。この要素では、複数のプロバイダ・ポートを特定します。表10-1に、<provider-description>
のサブ要素を説明します。<provider-port>
サブ要素は必須で、それ以外はオプションです。
表10-1 <provider-description>要素のサブ要素
要素名 | 説明 |
---|---|
定義されたすべてのプロバイダ・ポートで使用可能な、グローバルに定義されたプロパティを指定します。この要素は |
|
プロバイダの説明の名前。 |
|
WSDLポートをWebサービス・インタフェースおよび実装と関連付けます(必須)。ポート名をコンポーネントとして定義します。ポートをサービス・エンドポイントとも関連付けます。 |
|
プロバイダに関連するWSDLの位置を指定します。 |
|
WSDLのサービス名をプロバイダの名前と関連付けます。WSDLに2つ以上のサービスがある場合にはこの要素を指定する必要があります。WSDLのサービスが1つのみの場合はこの要素は不要です。 |
<provider-port>
要素は、WSDLポートをWebサービス・インタフェースおよび実装と関連付けます。表10-2に、<provider-port>
のサブ要素を説明します。<provider-name>
、<implementation-class>
および<servlet-links>
サブ要素は必須で、それ以外はオプションです。
表10-2 <provider-port>要素のサブ要素
要素名 | 説明 |
---|---|
テスト・ページを公開するかどうかを指定します。デフォルトは |
|
WSDLを公開するかどうかを指定します。デフォルトは |
|
|
|
正の値が指定されている場合は、サービスによりリクエストのサイズがその値(バイト単位)に制限されます。最大長を超えるリクエストはエラーの原因となります。デフォルトは、制限がないことを意味する |
|
プロバイダのWebサービス管理ポリシーを定義します。表10-3に、 |
|
ローカルで定義されたプロパティ。ローカルおよびグローバルの両方に特定の名前のプロパティが定義されている場合、ローカルに定義されたプロパティがグローバルに定義されたプロパティより優先されます。 |
|
プロバイダの名前(必須)。 |
|
|
|
|
<policy>
要素により、プロバイダのWebサービス管理ポリシーが定義されます。例10-2に、oracle-webservices.xml
デプロイメント・ディスクリプタで使用されるように、要素の構造を示します。表10-3に、<policy>
要素のサブ要素を説明します。
表10-3 <policy>要素のサブ要素
要素名 | 説明 |
---|---|
操作ごとに要素を1つずつ指定した、一連の要素を指定します。 |
|
参照先のWebサービスにより提供されるすべての操作に適用されるサーバー・サイドの、サービスのクオリティのランタイム情報(セキュリティ、信頼性、監査およびロギング)を指定します。各機能の構成は、それぞれの子要素に指定します。 |
表10-4に、特定のプロバイダ操作に管理ポリシーを定義する<operation>
要素を説明します。
表10-4 <operations>要素のサブ要素
要素名 | 説明 |
---|---|
参照先のWebサービスにより提供される特定の操作に対する、クライアント・サイドのサービスのクオリティ構成を指定します。構成はこの要素の
|
関連資料: Webサービス管理ポリシーの詳細は、次のリソースを参照してください。
|
Webサービスがプロバイダに対応できるようにするには、<servlet>
句に<servlet-class>
要素を、<servlet-mapping>
句に<url-pattern>
要素を追加します。例10-6に、これらの要素を含むweb.xml
デプロイメント・ディスクリプタを示します。これらの要素は、表10-5で説明されています。
例10-6 web.xmlデプロイメント・ディスクリプタのプロバイダ要素
<web-app><display-name/> <description/> <servlet> <servlet-name>LoggerProviderPort</servlet-name> <display-name>LoggerProviderPort</display-name> <description>JAX-RPC endpoint Provider Port</description> <servlet-class>oracle.j2ee.ws.server.provider.ProviderServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>LoggerProviderPort</servlet-name> <url-pattern>/LoggerService</url-pattern> </servlet-mapping> </web-app>
表10-5に、プロバイダと対応するためにweb.xml
に追加する必要のある要素を説明します。
表10-5 web.xmlのプロバイダ要素
要素名 | 説明 |
---|---|
プロバイダ・サーブレットの名前を指定します。値は |
|
Webサービスに使用するURLパターンを指定します。プロバイダ・サーブレットは、接頭辞がこの要素によって指定されているURLをリスニングします。URLパターンは、Webモジュールのプロバイダ・サーブレット・コンテキストに関連している必要があります。 動的なパススルー・モードの場合、 |
次の項では、Webサービスのプロバイダ管理のエンドポイントの登録方法を説明します。
次の手順では、Webサービスの静的なプロバイダ管理のエンドポイントを登録する方法の概要を説明します。各手順の詳細はリンク先を参照してください。
プロバイダ・アプリケーションを記述し、Provider
インタフェースを実装します。
Provider
メソッドのinit
、processMessage
およびdestroy
が実装されている必要があります。このインタフェースおよびそのメソッドの詳細は、「プロバイダ・インタフェース」を参照してください。
oracle-webservices.xml
およびweb.xml
デプロイメント・ディスクリプタを編集します。
これらのディスクリプタの編集の詳細は、「プロバイダ対応のWebサービスの作成方法」を参照してください。
管理構成を指定します(オプション)。
構成は、oracle-webservices.xml
デプロイメント・ディスクリプタのpolicy
句として指定されます。例10-2に、デプロイメント・ディスクリプタのpolicy
句の構造の例を示します。
サービスをパッケージ化します。
プロバイダ・クラスを含むサービスのパッケージ化の詳細は、「プロバイダWebアプリケーション・プロバイダ・クラスのパッケージ化方法」を参照してください。
ProviderConfig.addService
メソッドを使用して追加のプロバイダ管理エンドポイントを登録し、それらのエンドポイントの管理機能を構成できます。たとえば、Business Process Execution Language(BPEL)プロセス・マネージャでは、このメカニズムを使用してそのプロセスを登録します。
動的なプロバイダ管理のエンドポイントの生成、パッケージ化およびデプロイは、「静的なプロバイダ管理のエンドポイントの登録方法」で説明されているのと同じ手順に従います。エンドポイントを登録するには、次に示す追加の手順を実行する必要があります。
providerConfig
参照でaddService
メソッドを起動してサービスを登録します。実装には、メソッドのpolicy
パラメータを使用して、ポリシー構成を渡すオプションもあります。
例10-7に、プロバイダによりどのようにして動的にエンドポイントが追加されるかを示します。この例では、ADD_SERVICE_POLICY
プロパティで、動的に追加されたエンドポイントのWebサービス管理機能が宣言されます(この場合はセキュリティ、監査および信頼性)。
プロバイダのinit
メソッドに渡されたproviderConfig
参照(config
)で、addService
起動が作成されます。addService
メソッドのpolicy
パラメータはXMLUtil.elementFromString(ADD_SERVICE_POLICY)
を使用して、管理機能をサービスに渡します。WSDLがWARファイルの一部としてパッケージ化され、servletContext
を使用してリソースとして取得されていることに注意してください。
例10-7 プロバイダ管理のエンドポイントの動的な登録
... private static final String ADD_SERVICE_POLICY = "<policy>\n" + " <runtime enabled=\"security,auditing,reliability\">\n" + " <security>\n" + " <inbound>\n" + " <verify-username-token password-type=\"PLAINTEXT\" require-nonce=\"false\" " + " require-created=\"false\"/>\n" + " </inbound>\n" + " </security>\n" + " </runtime>\n" + " </policy>"; ... public void init(ProviderConfig config) throws ProviderException { ... URL wsdlURL1 = ((ServletContext)config.getContainerContext()). getResource("/WEB-INF/wsdl/HelloService.wsdl"); ... config.addService("/loanservice",wsdlURL1,new QName("http://hello.demo.oracle/","HttpSoap11"),null, XMLUtil.elementFromString( ADD_SERVICE_POLICY )); ... }
クラスタ環境をサポートするために、ProviderConfig
クラスでは、ブール型定数PROPAGATE_DYNAMIC_ENDPOINTS
が使用できます。この定数は、次のプロパティを表します。
oracle.webservices.provider.propagateDynamicEndpoints
このプロパティにより、構成グループまたはクラスタ全体でアプリケーションのすべてのインスタンスからアクセス可能な動的エンドポイントを作成できます。
プロパティをtrue
に設定すると、動的エンドポイントがOC4Jインスタンスで初期化された後にaddService
を起動すると、エンドポイントはクラスタまたは構成グループ全体のアプリケーションのすべてのインスタンスにアクセス可能になります。
PROPAGATE_DYNAMIC_ENDPOINTS
はオプションのプロパティで、oracle-webservices.xml
デプロイメント・ディスクリプタの<provider-port>
の<property>
サブ要素として設定できます。例10-8に、プロパティの使用方法を示します。
プロバイダWebアプリケーションは、標準のWebアプリケーションと同じようにパッケージ化されます。プロバイダ・アプリケーションにWSDLファイルがある場合は、WARファイルの/WEB-INF/wsdl
ディレクトリに保存します。プロバイダ・クラスは、/WEB-INF
の子である/classes
ディレクトリに保存します。例10-9に、プロバイダWebアプリケーションのEARファイルの内容を示します。
プロバイダWebアプリケーションは、(標準のデプロイ・メカニズムを使用して)J2EEサーブレット・コンテナにデプロイされます。コンテナには、プロバイダ・システム・クラス、およびランタイムで使用可能なサポート・クラスが必要です。
関連資料: プロバイダWebアプリケーションのデプロイの詳細は、『Oracle Containers for J2EEデプロイメント・ガイド』を参照してください。 |
プロバイダWebアプリケーションのエンドポイントは、エンドポイントを静的に構成して使用または動的に追加することにより、公開できます。エンドポイントにより関連するWSDLファイルが指定されている場合は、Webサービスのテスト・ページを起動してデプロイが成功したかどうかを参照できます。エンドポイントによってWSDLファイルが指定されていない場合は、テスト・ページは使用できません。
関連資料: Webサービスのホーム・ページの詳細は、『Oracle Application Server Web Services開発者ガイド』の「Webサービス・デプロイのテスト」を参照してください。 |
静的または動的に追加されたプロバイダ・エンドポイントにより関連するWSDLファイルが指定されている場合は、Application Server ControlのWebサービス・インタフェースを使用して構成できます。詳細は、Application Server Controlのオンライン・ヘルプの「Webサービスのホーム・ページ」のトピックを参照してください。
プロバイダWebサービス・アプリケーションにアクセスできるのは、標準のJ2SEまたはJ2EE静的スタブまたはDIIクライアントです。
関連資料: Webサービス・クライアントのアセンブルの詳細は、次の章を参照してください。
|
詳細は、次を参照してください。
J2EE Webサービス・クライアントをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「J2EE Webサービス・クライアントのアセンブル」を参照してください。
J2SE Webサービス・クライアントをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「J2SE Webサービス・クライアントのアセンブル」を参照してください。
プロバイダWebサービス・アプリケーションが正常にデプロイされたかどうかをテストする場合は、『Oracle Application Server Web Services開発者ガイド』の「Webサービス・デプロイのテスト」を参照してください。
WebServicesAssemblerコマンドを使用してWebサービス・アーティファクトをアセンブルする場合は、『Oracle Application Server Web Services開発者ガイド』の「WebServicesAssemblerの使用方法」を参照してください。