Oracle® Fusion Middleware Oracle WebLogic Server WebLogic SCAアプリケーションの開発 12c (12.1.2) E47997-02 |
|
前 |
次 |
この章では、SCAサービスおよび参照はSpringアプリケーション・コンテキスト内で構成さする方法について説明します。SCAサービスは、他のコンポーネントによる使用のためのビジネス機能を提供するプログラム・コードの一部です。サービスはSCA参照として他のコンポーネントから起動できます。
この章の内容は以下のとおりです。
SCAサービスおよび参照の厳密な定義は、OASISのSCAサービス・コンポーネント・アーキテクチャのアセンブリ・モデル仕様(http://www.oasis-opencsa.org/sca-assembly
)を参照してください。
WebLogic Spring SCAはSCA参照およびバインディングを指定する次の2つの要素をサポートします。
<sca:reference>
要素は、Springアプリケーション・コンテキストの外側のSCAサービスを表すSpring Beanを宣言します。この要素の属性は次のとおりです。
必須。参照の名前。
必須。リモート・サービスを表すインタフェースまたはクラスの完全修飾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互換インタフェースである必要があります。
オプション。何も指定しないと、参照に対するターゲットBeanです。これによりローカル・サービスにワイヤリングし、関連するバインディングを無視することで、パフォーマンスが向上します。
<sca:service>
要素はWebLogic SCAがサービスとして公開するSpring Beanを宣言します。この要素の属性は次のとおりです。
必須。サービスの名前。
binding.ws
サブ要素のname
属性に名前が指定されていない場合(binding.ws要素の属性を参照)、sca:service
のname
属性に指定した名前がWSDLでのサービス名として公開されます。しかし、binding.ws
で名前を指定した場合、その名前がそのバインディングのサービス名としてWSDLで公開されます。
必須。SCAサービスとして公開されるJavaクラスの完全修飾Javaタイプ。
必須。サービスとして公開される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アプリケーション・コンテキストの例を例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>