建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

和記娛h188下載app手機版:使用 WAS V6.1 SOA Feature Pack 開發 SCA 應用(下)

?

SCA 集成利用的開拓

下面我們經由過程別的一個示例來闡明 SOA Feature Pack 的其他緊張功能點,并且簡單演示若何使用 SCA 開拓企業集成利用。一個銀行系統供給給客戶的辦事可以包括帳戶治理,存取款,轉賬,貸款等辦事。這些辦事有的是已有系統中存在的,有的是必要開拓新系統實現的,在 SOA 利用中每每必要對這些異構系統進行整合。運用 SCA 構架體系為這種類型的營業整合供給了強大年夜的支持和優越的封裝性,并使開拓簡單便利。

示例概述

在我們的示例中,供給四個銀行賬戶辦事:存款、查詢余額、取款、轉賬。此中存款、查詢余額以及取款由 EJB 實現的已有系統供給,轉賬為新開拓的辦事,以 Web Service 的形式表現。下面先看 EJB 供給的功能:

清單 1 AccountEJB 的 Remote 接口

package ejbs;

/**

* Remote interface for Enterprise Bean: AccountEJB

*/

public interface AccountEJB extends javax.ejb.EJBObject {

/**

* @param accountId, ID of the customer's bank account

* @return the balance of the customer's account

* @throws java.rmi.RemoteException

*/

public double getBalance(String accountId) throws java.rmi.RemoteException;

/**

* @param accountId, ID of the customer's bank account

* @param amount, how much does the customer want to deposit

* @throws java.rmi.RemoteException

*/

public void deposit(String accountId, double amount)

throws java.rmi.RemoteException;

/**

* @param accountId, ID of the customer's bank account

* @param amount, how much does the customer want to withdraw

* @throws java.rmi.RemoteException

*/

public void withdraw(String accountId, double amount)

throws java.rmi.RemoteException;

}

AccountEJB 供給存款、查詢余額以及取款的功能,其 Remote 接口定義如清單 1 所示。getBalance 為查詢余額操作,它吸收銀行受帳戶 ID,返回帳戶余額;deposit 為存款操作,它吸收帳戶 ID 以及存款額度;withdraw 為取款操作,它吸收帳戶 ID 以及取款額度。

下面定義轉賬辦事的 Web Service,首先為轉賬操作的吸收的參數信息定義 XML Shcema – BankService.xsd,該 Schema 如清單 2 所示 AccountTransfer 為轉賬操作參數類型,它是一個 Complex Type,包孕三個屬性,分手為濫觴帳戶,目的帳戶,以及轉賬額度。有了 Schema 后接著定義轉賬操作的 WSDL – BankService.wsdl,如清單 3 所示(未列出 service 以及 port),該 WSDL 定義了一個名為 BankService 的 portType,包孕一個操作 transfer,它吸收之前定義的 AccountTransfer 作為參數,返回 boolean 以表示轉賬是否成功。該 WSDL 以 document-literal-wrapper 要領定義。

清單 2 轉賬參數 Schema

至此,我們已經有了一個 EJB 供給的辦事以及一個和記娛h188下載app手機版 Web Service 供給的辦事,下面描述若何建立一個 SCA 利用來集成它們。

Java 天生

留意到在天生 Web Service 的時刻,定義了一個 XSD 的 Complex Type:AccountTransfer 作為 Web Service 操作的參數,在 SCA 實現的時刻,必要以 Java 的要領創建并且應用這個類型,是以必要和記娛h188下載app手機版一個由 XSD 到 Java 的轉換。如文章上半部分中所述,這個功能是由 SOA Feature Pack 的 XSD2Java 對象供給的。此外在創建 SCA 實現的時刻,也必要有一個 Java 接口來表示 WSDL 里定義的 portType,是以必要一個 WSDL 到 Java 的轉換,這個功能由 WSDL2Java 對象供給。下面演示如何在 RSA 中應用這兩個對象:

在 Project Explorer 視圖中右擊 BankService.xsd,選擇 Run As -> Run...,彈出運行設置設置設備擺設擺設對話框。

在左側的運行類型樹中,右擊“Java Application”,選擇 New,進入編輯 Java 運行啟動項的設置設置設備擺設擺設界面。

在“Main”的設置設置設備擺設擺設頁中(如圖 1 所示),在 Main class 中搜索出 org.apache.tuscany.sdo.generate.XSD2JavaGenerator 類,該類是 XSD2Java 對象的進口。留意必須勾選“Include libraries when searching for a main class”的選項。(在工程樹馬上必須配好 SOA Feature Pack 的 classpath)。

圖 1 XSD2Java 啟動項設置設置設備擺設擺設

圖片看不清楚?請點擊這里查看原圖(大年夜圖)。

清單 4 BankService.wsdl 天生的 Java 接口

/**

* BankService.java

*

* This file was auto-generated from WSDL

* by the SOA Feature Pack WSDL to Java tool

*/

package sca.demo.bankservice;

import org.osoa.sca.annotations.Remotable;

/*

* BankService java interface

*/

@Remotable

public interface BankService {

/**

* Auto generated method signatures

*/

public boolean transfer(sca.demo.bank.service.AccountTransfer transfer);

}

至此,Java 天生的事情已經完成,下面可以使用天生的 Java 類進行 SCA 組件的開拓。

SCA 組件接口與實現

首先為必要建立的 SCA Component 定義接口,該接口集成了 AccountEJB 的功能以及 BankService 辦事的功能,清單 5 為該接口的代碼,留意必要應用 @Remotable 將接口聲明生遠程 SCA 接口。

清單 5 SCA 組件接口

package sca.demo.banksca;

@Remotable

public interface BankClient {

public double getBalance(String accountId);

public void deposit(String accountId, double amount);

public void withdraw(String accountId, double amount);

public boolean transfer(sca.demo.bank.service.AccountTransfer transfer);

}

SCA 組件支配

清單 7 給出了我們所必要創建的 SCA 組件的 Composite 定義,此中,我們創建了名為 BankDemoComponent 的 SCA component,并且應用了“SCA 組件接口與實現”節中給出的 Java 實現作為其 implementation,為 BankDemoComponent 創建了兩個 Reference:采納 EJB Binding 的 ejbReference 以及采納 Web Service Bin和記娛h188下載app手機版ding 的 wsReference。此中有以下幾點必要留意的地方:

因為在 SCA 組件中定義了 SDO,并且以 JavaBean 的形式應用,是以在 Composite 定義中必要聲明 SDO 的工廠類。import.sdo 元素即為此聲明的要領,它的名稱空間為 http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0。factory 屬性用來指定工廠類實現的全名。

在 EJB binding 中,接入點的描述為 corbaname:iiop:localhost:2809/NameServiceServerRoot#ejb/ejbs /AccountEJBHome,此中,localhost 為 EJB 所在的 J2EE 辦事器地址,2809 為辦事器的遠程調用接口,ejb/ejbs/AccountEJBHome 為 EJB 的 JNDI 名稱。

對付 Web Service Binding 的 Reference,既可以用 WSDL 形式的 interface 聲明,也可以用 Java 形式,因為本例中應用 WSDL2Java 天生了對應的 Java 接口,該接口即可以用來聲明此 Reference。

清單 7 SCA 組件 Composite 定義

|-------10--------20--------30--------40--------50--------60--------70--------80--------9|

|-------- XML error: The previous line is longer than the max o和記娛h188下載app手機版f 90 characters ---------|

|-------10--------20--------30--------40--------50--------60--------70--------80和記娛h188下載app手機版--------9|

|-------- XML error: The previous line is longer than the max of 90 characters ---------|

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
91街机捕鱼游戏 上海福彩中心 北单比分3串1奖金封顶吗 云南快乐十分开奖网站 北京时时彩开奖网站 做贷款公司很赚钱 澳洲幸运10计划软件手机版下载 什么软件可以合买双色球 彩票中奖重复 四川时时彩