国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
WebSphere ESB 入門:創(chuàng)建 POJO 并將其作為服務(wù)發(fā)布
 



級(jí)別: 初級(jí)

Vasudevan Thiyagarajan (vthiyaga@in.ibm.com), 系統(tǒng)工程師, IBM India Pvt. Ltd.

2007 年 3 月 20 日

了解如何從傳統(tǒng) Java 對象(Plain Old Java? Object,POJO)開發(fā)服務(wù)組件,并在 IBM? WebSphere Enterprise Service Bus 中發(fā)布。采用 Web 服務(wù)描述語言 (WSDL) 定義接口,并使用 Java? 實(shí)現(xiàn)。了解如何將服務(wù)組件與獨(dú)立引用相關(guān)聯(lián),以及如何使用獨(dú)立引用跨 ESB 訪問服務(wù)。

先決條件

本文假定您已經(jīng)安裝了 IBM WebSphere ESB 6.0 和 IBM WebSphere Integration Developer 6.0。

WebSphere Enterprise Service Bus 簡介

WebSphere Enterprise Service Bus 是允許應(yīng)用程序以靈活方式進(jìn)行集成的平臺(tái),可幫助企業(yè)實(shí)現(xiàn)其面向服務(wù)的體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)目標(biāo)。ESB 允許服務(wù)使用者和服務(wù)提供者彼此進(jìn)行交互,而其間沒有任何直接依賴關(guān)系。在 ESB 中,需要其他應(yīng)用程序的服務(wù)的應(yīng)用程序稱為“服務(wù)使用者”,而提供服務(wù)的應(yīng)用程序稱為“服務(wù)提供者”。ESB 將服務(wù)使用者和服務(wù)提供者分離開,務(wù)必注意的是,您可以更改服務(wù)使用者或服務(wù)提供者的接口定義,而不用修改另一方。

WebSphere Enterprise Service Bus 能夠執(zhí)行以下主要任務(wù),從而將服務(wù)提供者與服務(wù)使用者分離開來:

  1. 請求和響應(yīng)路由:服務(wù)提供者和服務(wù)使用者之間的全部通信都以消息的形式進(jìn)行。服務(wù)使用者請求服務(wù),并針對 ESB 創(chuàng)建請求消息。ESB 平臺(tái)將充當(dāng)提供者和使用者之間的傳輸媒介。ESB 將標(biāo)識(shí)實(shí)際的服務(wù)提供者并將請求傳遞給提供者。服務(wù)提供者完成操作后,將以消息格式生成響應(yīng),并隨后將其返回給 ESB。ESB 將響應(yīng)傳輸回實(shí)際的使用者。在整個(gè)通信過程中,提供者和使用者都不會(huì)意識(shí)到彼此的存在。只有 ESB 知道將請求和響應(yīng)消息路由到何處。
  2. 消息轉(zhuǎn)換:ESB 允許提供者和使用者使用自己的協(xié)議和消息傳遞格式。他們并沒有必要遵循相同的協(xié)議和消息格式——ESB 將負(fù)責(zé)處理不同的協(xié)議和不同的消息格式。它知道如何將一種消息格式轉(zhuǎn)換為另一種消息格式,也知道如何將使用一種協(xié)議的消息轉(zhuǎn)換為使用另一種協(xié)議的消息。

 

下圖說明了 ESB 的角色:


圖 1. ESB 概略圖

在 WSDL 中創(chuàng)建接口

我們從將攝氏度轉(zhuǎn)換為華氏度的示例服務(wù)組件著手進(jìn)行演示。Temperature Converter 組件具有名為 convert 的方法,該方法接受以攝氏度表示的給定溫度,并將返回對應(yīng)的華氏度溫度作為輸出。我們將使用 JavaServer Pages (JSP) 客戶機(jī)進(jìn)行測試,此客戶機(jī)通過獨(dú)立引用訪問該服務(wù)組件。

在 WebSphere ESB 中發(fā)布的每個(gè)服務(wù)組件都具有一個(gè)定義良好的接口。我們可以在 WebSphere Integration Developer 中為上述服務(wù)組件創(chuàng)建接口 TemperatureConverterInterface


圖 2. 使用 New Java Interface Wizard 創(chuàng)建 WSDL 接口

如下所示,向上述接口添加具有一個(gè)輸入和一個(gè)輸出的請求與響應(yīng)操作。此處的操作名為 convert,輸入為 Celsius as double,輸出為 Fahrenheit as double。


圖 3. 向接口添加操作



從 WSDL 通過 Assembly Editor 將服務(wù)組件作為 POJO 實(shí)現(xiàn)

接下來,我們?yōu)樯鲜鼋涌趧?chuàng)建一個(gè)傳統(tǒng) Java 對象 (POJO) 實(shí)現(xiàn)。我們可以在 Assembly Editor 的幫助下采用 Java 創(chuàng)建實(shí)現(xiàn)(服務(wù)組件),如下所示。Assembly Editor 屬于 WebSphere Integration Developer,允許開發(fā)人員通過接口(導(dǎo)入和導(dǎo)出)和綁定來連接 SCA 組件。我們將此實(shí)現(xiàn)命名為“TemperatureConverterImpl.java”。


圖 4. 使用 Assembly Editor 創(chuàng)建服務(wù)組件

接下來,我們需要通過“Add Interface”將接口 TemperatureConverterInterface 與此實(shí)現(xiàn)相關(guān)聯(lián)。


圖 5. 將接口與生成的服務(wù)組件相關(guān)聯(lián)

現(xiàn)在接口已與組件關(guān)聯(lián)。我們可以通過使用“Generate Implementation”選項(xiàng)生成實(shí)現(xiàn)的框架。


圖 6. 為新服務(wù)組件生成實(shí)現(xiàn)


圖 7. 將實(shí)現(xiàn)添加到生成的框架中

我們需要在上述類中添加 convert 方法的實(shí)現(xiàn),如下所示:


清單 1. Convert 方法實(shí)現(xiàn)
                                    public Double convert(Double celsius) {
                                    double dCelsius = celsius.doubleValue();
                                    double fahr;
                                    fahr = (((0.9/0.5) * dCelsius) + 32);
                                    return new Double(fahr);
                                    }		

將服務(wù)組件與獨(dú)立引用關(guān)聯(lián)

接下來,我們將創(chuàng)建獨(dú)立引用,并將其與服務(wù)組件相關(guān)聯(lián),以便 JSP 客戶機(jī)能夠通過獨(dú)立引用訪問該組件。


圖 8. 創(chuàng)建獨(dú)立引用

我們可以通過“Add Reference”按鈕將 TemperatureConverterInterface.wsdl 與獨(dú)立引用相關(guān)聯(lián)。缺省情況下,獨(dú)立引用將被命名為 TemperatureConverterInterfacePartner。


圖 9. 將獨(dú)立引用與服務(wù)組件連接


創(chuàng)建客戶機(jī),并通過獨(dú)立引用訪問服務(wù)

接下來,我們需要開發(fā)客戶機(jī) JSP 來測試服務(wù)組件。此 JSP 將允許用戶輸入攝氏度值。隨后 JSP 會(huì)將該值傳遞給服務(wù),以將其轉(zhuǎn)換為華氏度,并最后顯示結(jié)果。


圖 10. 新 JSP 文件模板

將隨后使用下面所示的 ServiceManager 類通過 JSP 調(diào)用組件。


清單 2. JSP 實(shí)現(xiàn)
                                    String cel = request.getParameter("celcius");
                                    if(cel != null && cel.length() > 0){
                                    try{
                                    ServiceManager serviceManager = new ServiceManager();
                                    Service service = (Service) serviceManager.locateService
                                    ("TemperatureConverterInterfacePartner");
                                    Double celDouble = Double.valueOf(cel);
                                    DataObject respObject = (DataObject) service.invoke("convert", celDouble);
                                    if(respObject!= null){
                                    out.println(respObject.getDouble("Fahrenheit"));
                                    }
                                    }catch(Exception e){
                                    //handele it
                                    }
                                    }

打包并在 WebSphere ESB 中部署應(yīng)用程序

組件和客戶機(jī)現(xiàn)在已經(jīng)準(zhǔn)備好,可以打包并在 WebSphere ESB 中部署,以便進(jìn)行測試。將應(yīng)用程序?qū)С鰹?Integration Module EAR,如下所示。


圖 11. 將項(xiàng)目作為集成模塊導(dǎo)出


圖 12. 集成模塊導(dǎo)出

在 WebSphere ESB 中通過 Admin Console 部署 EAR 文件,并在瀏覽器中訪問其“URL”。


圖 13. 最終輸出

結(jié)束語

通過本文,您已經(jīng)了解了如何使用自底向上方法(從接口到實(shí)現(xiàn))創(chuàng)建服務(wù)組件以及如何在 IBM WebSphere ESB 中發(fā)布它。另外,還了解了如何通過獨(dú)立引用從客戶機(jī)訪問此服務(wù)組件。











本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SCA(Service Component Architecture)編程模型入門
解析SCA中的基本概念(5) - 51CTO.COM
幾種ESB(企業(yè)服務(wù)總線)介紹
ESB在實(shí)際項(xiàng)目重的應(yīng)用--WebSphere Message Broker - zhao...
J2EE項(xiàng)目代碼編寫規(guī)范
J2EE項(xiàng)目代碼編寫規(guī)范分享
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服