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ファイル内に生成された.clas
sファイルをアーカイブします。
詳細は、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>