ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server WebLogic SCAアプリケーションの開発
11g リリース1 (10.3.6)
B61414-04
  目次へ移動
目次

前
 
次
 

6 Springアプリケーション・コンテキストの構成

SCAサービスは、他のコンポーネントによる使用のためのビジネス機能を提供するプログラム・コードの一部です。サービスはSCA参照として他のコンポーネントから起動できます。SCAサービスおよび参照の厳密な定義については、OASISのSCAサービス・コンポーネント・アーキテクチャのアセンブリ・モデル仕様(http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V100.pdf?version=1)を参照してください。

SCAサービスおよび参照は次の項で説明しているように、Springアプリケーション・コンテキストで構成されます。

参照とサービスの指定

WebLogic Spring SCAはSCA参照およびバインディングを指定する次の2つの要素をサポートします。

sca:reference要素

<sca:reference>要素は、Springアプリケーション・コンテキストの外側のSCAサービスを表すSpring Beanを宣言します。この要素の属性は次のとおりです。

name

必須。参照の名前。

type

必須。リモート・サービスを表すインタフェースまたはクラスの完全修飾Javaタイプ。たとえば、Webサービスへの外部参照の場合、これはWebサービスに対するクライアント側プロキシのタイプになります。

Webサービス・バインディングを使用するSCA参照で使用されるタイプはJAX-WS互換インタフェースである必要があります。使用されるタイプは、JAX-WS wsimportツール、WebLogic clientgen Antタスク、Oracle JDeveloperまたはOracle Enterprise Pack for Eclipse(OEPE)などのJAX-WS互換クライアント生成ツールを使用して、外部WSDLから生成されたJAX-WS互換インタフェースである必要があります。

default

オプション。何も指定しないと、参照に対するターゲットBeanです。これによりローカル・サービスにワイヤリングし、関連するバインディングを無視することで、パフォーマンスが向上します。

sca:service要素

<sca:service>要素はWebLogic SCAがサービスとして公開するSpring Beanを宣言します。この要素の属性は次のとおりです。

name

必須。サービスの名前。

binding.wsサブ要素のname属性に名前が指定されていない場合(binding.ws要素の属性を参照)、sca:servicename属性に指定した名前がWSDLでのサービス名として公開されます。しかし、binding.wsで名前を指定した場合、その名前がそのバインディングのサービス名としてWSDLで公開されます。

type

必須。SCAサービスとして公開されるJavaクラスの完全修飾Javaタイプ。

target

必須。サービスとして公開されるBean。

WebLogic Spring SCAスキーマについては、 付録A「WebLogic Spring SCA スキーマ(weblogic-sca.xsd)」を参照してください。

バインディング・サブ要素

sca:reference要素およびsca:service要素には参照またはサービスのバインディングを指定するバインディング・サブ要素が含まれます。sca:reference要素には1つだけバインディング・サブ要素を含めることができます。複数指定した場合、最初のものだけが使用されます。1つのsca:service要素にはゼロ、1つまたは複数のバインディング・サブ要素を含めることができます。

WebLogic Spring SCAは次のバインディング要素をサポートします。

  • <binding.ws>はバインディングがWebサービス・バインディングであることを指定します。

  • <binding.ejb>はバインディングがEJBセッションBeanバインディングであることを指定します。

  • <binding.scaがデフォルトです。binding.scaが指定されるか、またはバインディングが指定されない場合、WebLogic SCAランタイムのデフォルトはbinding.wsになります。

バインディング要素およびWebLogic SCAランタイム・バインディング・コンポーネントの実装の詳細は、第7章「EJBセッションBeanバインディングの構成」および第8章「Webサービス・バインディングの構成」を参照してください。バインディング要素のスキーマについては、付録A「WebLogic SCAスキーマ」を参照してください。

Springアプリケーション・コンテキストの例

Springアプリケーション・コンテキストの例を例6-1に示します。コンテキストには2つのSpring Bean、beanXおよびbeanYが含まれています。Bean beanXはWebLogic Spring SCAからSpringアプリケーション・コンテキストへのエントリ・ポイントで、Bean beanYには外部SCAサービスへの参照が含まれます。

例6-1 Springアプリケーション・コンテキストの例

<beans xmlns="http://www.springframework.org/schema/beans"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:sca="http://xmlns.oracle.com/weblogic/weblogic-sca"
      xmlns:wlsb="http://xmlns.oracle.com/weblogic/weblogic-sca-binding"
      xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
      xsi:schemaLocation="http://www.springframework.org/schema/beans 
      http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
      http://xmlns.oracle.com/weblogic/weblogic-sca 
      http://xmlns.oracle.com/weblogic/weblogic-sca/1.0/weblogic-sca.xsd
      http://xmlns.oracle.com/weblogic/weblogic-sca-binding 
      http://xmlns.oracle.com/weblogic/weblogic-sca-binding/1.0/weblogic-sca-binding.xsd">

  <!-- Expose the bean "X" as an SCA service named "SCAService"-->

  <sca:service name="SCAService" 
      type="org.xyz.someapp.SomeInterface"
      target="X">
      <wlsb:binding.ws uri="/testService"/>
   </sca:service> 
 
  <sca:reference name="SCAReference" type="org.xyz.someapp.SomeOtherInterface">
    <wlsb:binding.ws 
        location="http://localhost:7001/jscaliteapp/myrefsvcnameuri" 
        port="http://test.oracle.com#wsdl.endpoint(SCAService2/myrefportname)"/>
  </sca:reference> 
 
  <bean id="X" class="org.xyz.someapp.SomeClass">
    <property name="foo" ref="Y"/>
  </bean>
 
  <bean id="Y" class="org.xyz.someapp.SomeOtherClass">
    <property name="bar" ref="SCAReference"/>
  </bean>
</beans>