Oracle CEPアプリケーション内からWebサービスを使用できます。
この章では次について説明します:
Webサービスを使用して、Oracle CEP アプリケーションと他のシステムを統合できます。
Oracle CEPはJAX-WS 2.0のGlassfish参照実装を使用して、JAX-WS API標準のバージョン2.0をサポートします。次のものが含まれます。
JAX-WS 2.0 (Java API for XML Web Services、JSR 224で定義)
WS-I Basic Profile 1.1
WS-I Attachments Profile 1.0 (SOAP Messages with Attachments)
WS-I Simple SOAP Binding Profile 1.0
SOAP 1.1および1.2 (Simple Object Access Protocol)
MTOM (Message Transmission Optimization Mechanism)
WSDL 1.1 (Web Services Definition Language)
JAXB 2.0 (Java API for XML Binding、個別のJAXBモジュールを介した参照)
SAAJ 1.3 (SOAP with Attachments API for Java)
このプロシージャがWebサービスを起動するOracle CEPアプリケーションの作成方法を説明します。このシナリオでは、Oracle CEPアプリケーションはWebサービス・クライアントです。
Oracle CEPアプリケーションからWebサービスを起動するには:
WebサービスのためにWSDLを作成または取得します。
この例ではEchoService.WSDLというWSDLの使用を想定します。
Webサービスの起動に使用するコンパイル済の.classファイルを生成します(実際のコマンドは1行になります)。
java -cp OCEP_HOME_DIR/modules/com.bea.core.ws.glassfish.jaxws.tools_9.0.0.0.jar
com.sun.tools.ws.WsImport EchoService.WSDL
ORACLE_CEP_HOMEは、Oracle CEPがインストールされているディレクトリ(/oracle_homeなど)です。
Oracle CEPアプリケーションJARファイル内に生成された.classファイルをアーカイブします。
詳細は、4.7項「Oracle CEPプロジェクトにおけるライブラリと他の非クラス・ファイルの管理」を参照してください。
Export-Packageヘッダーを使用して、MANIFEST.MFファイルのクライアントコード用のWebサービスJavaパッケージをエクスポートします。
Export-Package: com.oracle.ocep.sample.echoService;
詳細は、4.7.4項「パッケージのエクスポート方法」を参照してください。
Import-Packageヘッダーを使用して、MANIFEST.MFファイルのOracle CEPアプリケーションに次のパッケージをインポートします。
Import-Package: com.ctc.wstx.stax, com.sun.xml.bind.v2, com.sun.xml.messaging.saaj.soap, com.sun.xml.messaging.saaj.soap.ver1_1, com.sun.xml.ws, javax.jws, javax.xml.bind, javax.xml.bind.annotation, javax.xml.namespace, javax.xml.soap, javax.xml.transform, javax.xml.transform.stream, javax.xml.ws, javax.xml.ws.spi, org.xml.sax, weblogic.xml.stax;
詳細は、4.7項「Oracle CEPプロジェクトにおけるライブラリと他の非クラス・ファイルの管理」を参照してください。
他のJavaアップリケーションと同様に、クライアントコードを使用して、Webサービスを起動します。
EchoService service = new EchoService();
EchoPort port = service.getEchoServicePort();
String echo = port.echo("foo");
このプロシージャは、Oracle CEPアプリケーションをWebサービスとして公開する方法を説明します。このシナリオでは、Oracle CEPアプリケーションはWebサービス・プロバイダです。
Oracle CEPアプリケーションをWebサービスとして公開するには:
WebサービスのためにWSDLを作成または取得します。
この例ではEchoService.WSDLというWSDLの使用を想定します。
サービスを実装します。
java.jws注釈の@WebServiceおよび@WebMethodの使用を考慮してください。
例17-1のように、アプリケーション・バンドルにbea-jaxws.xmlファイルを追加します。表17-1では、このファイル内の属性について説明します。
例17-1 bea-jaxws.xmlファイル
<endpoints>
<endpoint>
<name>EchoService</name>
<implementation-class>
com.bea.wlevs.test.echo.impl.EchoServiceImpl
</implementation-class>
<url-pattern>/echo</url-pattern>
<wsdl-location>
/META-INF/wsdl/echo.wsdl
</wsdl-location>
<service-name>
{http://wsdl.oracle.com/examples/cep/echo}EchoService
</service-name>
<port-name>
{http://wsdl.oracle.com/examples/cep/echo}EchoServicePort
</port-name>
</endpoint>
</endpoints>
表17-1 bea-jaxws.xmlファイルの属性
| 属性 | 説明 |
|---|---|
|
|
webサービスの名前 |
|
|
サービスを実行するクラス |
|
|
WebサービスにアクセスするためのURLパターン |
|
|
バンドル内のwsdlへの相対パス |
|
|
サービスのQName |
|
|
ポートのQName |
詳細は、4.7項「Oracle CEPプロジェクトにおけるライブラリと他の非クラス・ファイルの管理」を参照してください。
BEA-JAXWS-Descriptorヘッダーを使用して、MANIFEST.MFファイルにあるbea-jaxws.xmlファイルを参照します。
BEA-JAXWS-Descriptor: META-INF/bea-jaxws.xml;
詳細は、4.7項「Oracle CEPプロジェクトにおけるライブラリと他の非クラス・ファイルの管理」を参照してください。
Import-Packageヘッダーを使用して、MANIFEST.MFファイルのOracle CEPアプリケーションに次のパッケージをインポートします。
Import-Package: com.ctc.wstx.stax, com.sun.xml.bind.v2, com.sun.xml.messaging.saaj.soap, com.sun.xml.ws, javax.jws, javax.xml.bind, javax.xml.bind.annotation, javax.xml.namespace, javax.xml.soap, javax.xml.transform, javax.xml.transform.stream, javax.xml.ws, javax.xml.ws.spi, org.xml.sax, weblogic.xml.stax;
詳細は、4.7項「Oracle CEPプロジェクトにおけるライブラリと他の非クラス・ファイルの管理」を参照してください。
Oracle CEPドメインを表すOracle CEPサーバーDOMAIN_DIR/config/config.xmlファイルにglassfish-ws要素を追加します。DOMAIN_DIRはドメイン・ディレクトリを示します。
<glassfish-ws>
<name>JAXWS</name>
<http-service-name>JettyServer</http-service-name>
</glassfish-ws>