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

前
 
次
 

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 task、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要素には、参照またはサービスのバインディングを指定するためのバインディング下位要素が含まれます。1つのsca:reference要素には1つのバインディング下位要素のみを含めることができます。複数指定されている場合、最初の1つのみが使用されます。1つのsca:service要素にはゼロ、1つ、または複数のバインディング下位要素を含めることができます。

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

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

  • <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に示します。コンテキストには、beanXおよびbeanYの2つのSpring Beanが含まれています。beanXはWebLogic Spring SCAからSpringアプリケーション・コンテキストへのエントリ・ポイントで、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>