プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Event Processingアプリケーションの開発
12c リリース1 (12.1.3)
E54312-04
目次へ移動
目次

前
前へ
次
次へ

10 Webサービス

Webサービス・プラットフォームを使用して、Oracle Event Processingアプリケーションを他のシステムと統合できます。この章では、アプリケーションからのサービスの起動方法、およびアプリケーションのWebサービスとしての公開方法を説明します。

この章の内容は次のとおりです。

10.1 サポート対象のプラットフォーム

Oracle Event Processingは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メッセージ)

  • WS-I Simple SOAP Binding Profile 1.0

  • SOAP 1.1および1.2 (Simple Object Access Protocol)

  • MTOM (メッセージ転送最適化メカニズム)

  • 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)

10.2 アプリケーションからのWebサービスの起動

このプロシージャでは、Webサービスを起動するアプリケーションの作成方法を説明します。

このシナリオでは、アプリケーションはWebサービス・クライアントです。

アプリケーションからWebサービスを起動するには、次のようにします。

  1. WebサービスのためにWeb Service Definition Language (WSDL)ファイルを作成または取得します。

    この例ではEchoService.WSDLという名前のWSDLを使用します。

  2. Webサービスの起動に必要なコンパイルされたクラス・ファイルを次のコマンドを使用して生成します。コマンド全体を1行で入力します。
    java -cp /Oracle/Middleware/my_oep/modules/com.bea.core.ws.glassfish.jaxws.tools_12.0.0.0.jar com.sun.tools.ws.WsImport EchoService.WSDL
    
  3. Oracle Event ProcessingアプリケーションのJARファイル内の生成されたクラス・ファイルをアーカイブします。
  4. Export-PackageヘッダーおよびパッケージをMANIFEST.MFファイルに追加し、クライアント・コード用のWebサービスJavaパッケージをエクスポートします。
    Export-Package: com.oracle.ocep.sample.echoService;
    
  5. Import-Packageヘッダーを使用して、MANIFEST.MFファイルに次のパッケージを追加します。
    Manifest-Version: 1.0
    Export-Package: echo
    Bundle-Vendor: %project.vendor
    Bundle-ClassPath: .,lib/echo.jar
    Bundle-Version: 1.0.0
    Bundle-Localization: bundle
    Bundle-ManifestVersion: 2
    Bundle-Name: %project.name
    Import-Package: com.bea.wlevs.configuration;version="11.1.1",com.bea.w
     levs.ede;version="11.1.1",com.bea.wlevs.ede.api;version="11.1.1",com.
     bea.wlevs.ede.impl;version="11.1.1",com.bea.wlevs.ede.spi;version="11
     .1.1",com.bea.wlevs.management.spi;version="11.1.1",com.bea.wlevs.spr
     ing;version="11.1.1",com.bea.wlevs.spring.support;version="11.1.1",co
     m.bea.wlevs.util;version="11.1.1",com.ctc.wstx.stax;version="4.0.5",c
     om.sun.xml.bind.v2;version="2.1.14",com.sun.xml.bind.v2.model.annotat
     ion;version="2.1.14",com.sun.xml.messaging.saaj.soap;version="2.1.0",
     com.sun.xml.messaging.saaj.soap.ver1_1;version="2.1.0",javax.jws,java
     x.xml,javax.xml.bind,javax.xml.bind.annotation,javax.xml.namespace,ja
     vax.xml.transform.stream,oracle.jdbc;version="1.1.0.0_11-2-0-2-0",ora
     cle.sql;version="1.1.0.0_11-2-0-2-0",org.apache.commons.logging;versi
     on="1.1.0",org.springframework.beans;version="2.5.6",org.springframew
     ork.beans.factory;version="2.5.6",org.springframework.beans.factory.c
     onfig;version="2.5.6",org.springframework.core.annotation;version="2.
     5.6",org.springframework.ejb.config,org.springframework.osgi.context;
     version="1.2.0",org.springframework.osgi.extensions.annotation;versio
     n="1.2.0",org.springframework.osgi.service;version="1.2.0",org.spring
     framework.util;version="2.5.6",org.xml.sax,org.xml.sax.ext,weblogic.j
     dbc.extensions;version="1.10.0.0",weblogic.xml.stax;version="1.10.0.0
     "
  6. Webサービスを起動する次のコード行をアプリケーションに追加します。
    EchoService service = new EchoService();
    EchoPort port = service.getEchoServicePort();
    String echo = port.echo("foo");

10.3 アプリケーションのWebサービスとしての公開

この例では、アプリケーションはWebサービス・プロバイダです。

アプリケーションをWebサービスとして公開するには、次のようにします。

  1. WebサービスのためにWSDLを作成または取得します。

    この例ではEchoService.WSDLという名前のWSDLを使用します。

  2. サービスを実装します。

    java.jws注釈の@WebServiceおよび@WebMethodの使用を検討してください。

  3. アプリケーション・バンドルにbea-jaxws.xmlファイルを追加します。表10-1では、このファイル内の属性について説明します。
    <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>
    

    表10-1 bea-jaxws.xmlファイルの属性

    属性 説明

    name

    webサービスの名前

    implementation-class

    サービスを実行するクラス

    url-pattern

    WebサービスにアクセスするためのURLパターン

    wsdl-location

    バンドル内のwsdlへの相対パス

    service-name

    サービスのQName

    port-name

    ポートのQName

  4. BEA-JAXWS-Descriptorヘッダーを使用して、MANIFEST.MFファイルにあるbea-jaxws.xmlファイルを参照します。
    BEA-JAXWS-Descriptor: META-INF/bea-jaxws.xml;
    
  5. Import-PackageヘッダーおよびパッケージをMANIFEST.MFファイルに追加し、次のパッケージをアプリケーションにインポートします。
    Import-Package: com.ctc.wstx.stax,
       com.bea.core.ws.glassfish.jaxws,
       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
    
  6. Oracle Event Processingドメインを示すOracle Event ProcessingサーバーのDOMAIN_DIR/config/config.xmlファイルにglassfish-ws要素を追加します。DOMAIN_DIRはドメイン・ディレクトリを示します。
    <glassfish-ws>
        <name>JAXWS</name>
        <http-service-name>JettyServer</http-service-name>
    </glassfish-ws>