国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

使用Web服務(wù)和Ja.NET來實(shí)現(xiàn)互用性

2019-11-18 12:03:42
字體:
供稿:網(wǎng)友

  簡(jiǎn)介
  第 7 章“在表示層集成 .NET”描述了如何集成 .NET Framework 表示層和 J2EE 業(yè)務(wù)層,以及如何定義封裝 J2EE 業(yè)務(wù)服務(wù)外觀的 java 服務(wù)接口。之后講述了 .NET Framework 互用性適配器的設(shè)計(jì),以便 .NET Framework 應(yīng)用程序(如 asp.net Web 窗體)可以調(diào)用 Java 服務(wù)接口。
  
  本章和第 7 章內(nèi)容相反,本章描述了如何集成 J2EE 表示層和 .NET Framework 業(yè)務(wù)層。其中包括定義不同的方法以完成該互用性的兩小節(jié):
  
  • 使用 Web 服務(wù)來實(shí)現(xiàn)互用性本節(jié)描述了如何定義 .NET Framework Web 服務(wù) (WS) 服務(wù)接口來封裝 .NET Framework 業(yè)務(wù)服務(wù)外觀。之后描述了如何設(shè)計(jì) Java 互用性適配器來啟用 Java 代碼,如 J2EE 表示層調(diào)用 .NET Framework WS 服務(wù)接口。
  
  • 使用 Ja.NET 來實(shí)現(xiàn)互用性 本節(jié)描述了如何使用 Ja.NET 來啟用 J2EE 表示層,以通過使用 .NET Remoting 來訪問 .NET Framework 業(yè)務(wù)服務(wù)外觀。
   使用Web服務(wù)和Ja.NET來實(shí)現(xiàn)互用性(圖一)
  圖 8.1:為 .NET Framework 業(yè)務(wù)服務(wù)外觀實(shí)現(xiàn) .NET Framework 服務(wù)接口
  
  以下過程描述了 XBikes 開發(fā)人員如何創(chuàng)建 .NET Framework Web 服務(wù)服務(wù)接口以公開 XBikes 的 .NET Framework 版本業(yè)務(wù)層中的業(yè)務(wù)服務(wù)外觀。
  
  1.開發(fā)人員創(chuàng)建一個(gè)名為 XBikes-BLL-WSServiceInterface 的新 ASP.NET Web 服務(wù)項(xiàng)目。
  
  2.他們刪除默認(rèn)的 Service1.asmx 文件并將其替換為名為 BLLWSServiceInterface.asmx 的新 Web 服務(wù)。開發(fā)人員用如下的 [WebService] 屬性來批注該 Web 服務(wù)類。
  
  [WebService(Namespace="http://XBikes.com/BLLWSServiceInterace/")]
  public class BLLWSServiceInterface : System.Web.Services.WebService
  {
   // Members...
  }
  3.該團(tuán)隊(duì)將 Web 服務(wù)方法添加到 Web 服務(wù)類,由現(xiàn)有的業(yè)務(wù)服務(wù)外觀公開的每種方法都具有正確的方法簽名。但是,開發(fā)人員將數(shù)據(jù)類型更改為“字符串”,而不是每種方法將數(shù)據(jù)集作為參數(shù)接受或返回。
  
  [WebService(Namespace="http://XBikes.com/BLLWSServiceInterace/")]
  public class BLLWSServiceInterface : System.Web.Services.WebService
  {
   [WebMethod]
   public string AuthenticateCustomer(string email, string passWord)
   {}
   [WebMethod]
   public string GetCategories()
   {}
   [WebMethod]
   public string GetPRodUCtsByCategory(int CategoryID)
   {}
   [WebMethod]
   public string GetSearchResults(string keyword)
   {}
   [WebMethod]
   public void PlaceOrder(string order)
   {}
   [WebMethod]
   public string GetCustomerOrders(int customerID)
   {}
  }
  4.該團(tuán)隊(duì)將代碼添加到每種 Web 服務(wù)方法以調(diào)用業(yè)務(wù)服務(wù)外觀方法。以下代碼示例顯示了如何對(duì) Web 服務(wù)服務(wù)接口中的 GetCategories 方法執(zhí)行操作。開發(fā)人員調(diào)用自業(yè)務(wù)服務(wù)外觀返回的 CategoriesData 對(duì)象的 Getxml 方法,從而將數(shù)據(jù)轉(zhuǎn)換成 XML 格式化字符串,WS 服務(wù)接口將該字符串返回其調(diào)用方。
  
  [WebMethod]
  public string GetCategories()
  {
   try
   {
  // Create a business service facade (BSF) object
  BusinessServiceFacade bsf = new BusinessServiceFacade();
  // Call the GetCategories method on the BSF object
  CategoriesData cd = bsf.GetCategories();
  // Convert the CategoriesData dataset into XML, and return it
  return cd.GetXml();
   }
   catch (XBikesInteropException intEXP)
   {
  //.. Error handling code
   }
  }
  5.根據(jù) WS-I Basic Profile 1.0,Web 服務(wù)應(yīng)該支持 SOAP 協(xié)議,但不支持 HTTPGet 或者 HTTPPost 協(xié)議。為了從 Web 服務(wù)中移除協(xié)議支持,XBikes 開發(fā)人員將以下代碼添加到 Web 服務(wù)的 Web.config 文件的 部分。
  
  <webServices>
   <protocols>
  <remove name="HttpGet" />
  <remove name="HttpPost" />
   </protocols>
  </webServices>
  
  為了測(cè)試 Web 服務(wù),開發(fā)人員在 Visual?Studio .NET 2003 中建立并運(yùn)行 Web 服務(wù)項(xiàng)目。運(yùn)行 ASP.NET Web 服務(wù)項(xiàng)目時(shí),在瀏覽器中會(huì)自動(dòng)出現(xiàn)一張測(cè)試頁。這張測(cè)試頁包含答應(yīng)調(diào)用每種 Web 服務(wù)方法的超級(jí)鏈接。假如必要,該測(cè)試頁還有供您輸入值的文本框。在調(diào)用完一個(gè) Web 服務(wù)方法后,另一個(gè)瀏覽器窗口會(huì)打開顯示來自 Web 服務(wù)方法的 XML 響應(yīng)。
  
  注盡管 XBikes 示例應(yīng)用程序不完全符合 WS-I Basic Profile 1.0 的要求,但開發(fā)人員使用工具包功能(開發(fā)時(shí)提供)來盡可能滿足 Basic Profile 的要求。
  
  在 J2EE 內(nèi)創(chuàng)建互用性適配器
  前面部分描述了如何在 .NET Framework 中創(chuàng)建 Web 服務(wù)服務(wù)接口;創(chuàng)建之后,可以繼續(xù)構(gòu)建 J2EE 互用性適配器。本節(jié)內(nèi)容即介紹了建立該適配器的步驟。建立步驟如下所示:
  
  • 根據(jù) XML 架構(gòu)建立 Java 數(shù)據(jù)類。
  
  • 使用由 Web 服務(wù)堆棧提供的工具構(gòu)建 Web 服務(wù)代理。
  
  • 為整個(gè)服務(wù)接口創(chuàng)建一個(gè)適配器,或者為每個(gè)用例創(chuàng)建一個(gè)適配器。
  
  注在 Xbikes 中,開發(fā)人員為每個(gè)用例創(chuàng)建一個(gè)適配器。
  
  互用性適配器調(diào)用該代理,然后代理調(diào)用 Web 服務(wù)。該適配器還必須在任何 Java 數(shù)據(jù)和基于 XML 架構(gòu)的正確字符串/XML格式之間進(jìn)行轉(zhuǎn)換。
  
  適配器的邏輯流如下所示:
  
  1.應(yīng)用程序調(diào)用適配器方法。
  
  2.適配器方法將任何復(fù)雜數(shù)據(jù)轉(zhuǎn)換成 XML 字符串表示。
  
  3.適配器方法創(chuàng)建 Web 服務(wù)代理的實(shí)例。
  
  4.適配器方法調(diào)用 Web 服務(wù)代理中的適當(dāng)方法。
  
  5.假如代理返回?cái)?shù)據(jù),則適配器方法將其轉(zhuǎn)換成正確的 Java 格式(假如必要)。
  
  6.適配器方法將數(shù)據(jù)返回到調(diào)用應(yīng)用程序。
  
  
  圖 8.2 顯示了該操作過程。
   使用Web服務(wù)和Ja.NET來實(shí)現(xiàn)互用性(圖二)
  圖 8.2:帶有 J2EE 應(yīng)用程序的 Web 服務(wù)代理操作
  
  以下為構(gòu)建 Java 適配器的任務(wù):
  
  1.從 XML 架構(gòu)創(chuàng)建 Java 數(shù)據(jù)類型和 XML 映射。
  
  2.為 NET Framework Web 服務(wù)從 WSDL 創(chuàng)建 Java Web 服務(wù)代理。
  
  3.創(chuàng)建 Java 適配器以轉(zhuǎn)換 Java 數(shù)據(jù)并調(diào)用 .NET Framework Web 服務(wù)。
  
  以下部分描述了這些任務(wù)的執(zhí)行步驟。
  
  從 XML 架構(gòu)創(chuàng)建 Java 數(shù)據(jù)類型和 XML 映射。
  大多數(shù) Java XML 產(chǎn)品提供工具以創(chuàng)建基于 XML 架構(gòu)的 Java 數(shù)據(jù)類型。通常,這些工具還創(chuàng)建將 Java 類中的每個(gè)字段映射到 XML 架構(gòu)中的元素或?qū)傩缘挠成湮募?br />  
  注假如現(xiàn)有的 Java 數(shù)據(jù)類型已經(jīng)與 XML 架構(gòu)一致,則無須定義中間 Java 類。只需定義將 Java 字段直接映射到 XML 架構(gòu)中的元素和屬性的映射文件。
  
  定義基于 XSD 的 Java 類之后,下一步是編寫代碼,將數(shù)據(jù)從原始的 Java 對(duì)象復(fù)制到基于 XSD 類的對(duì)象中。然后,必須編寫代碼以將基于 XSD 的對(duì)象序列化成 XML 格式化字符串。
  
  將序列化代碼放入 Helper 類中是一個(gè)不錯(cuò)的主意,XBikes 開發(fā)人員就是這么做的。Helper 類要求希望寫入或讀取字符串的每種類型的數(shù)據(jù)有兩種方法;這兩種方法接受要轉(zhuǎn)換的數(shù)據(jù)的單一參數(shù)以及返回轉(zhuǎn)換類型的單一值。以下方法簽名顯示了 Order 對(duì)象和 XML 格式化字符串之間的轉(zhuǎn)換。
  
  public static String orderToString(Order o);
  public static Order StringToOrder(String o);
  
  以下步驟闡釋了 XBikes 開發(fā)人員從本章之前所述的 CustomerData.xsd XML 架構(gòu)創(chuàng)建基于 XSD 的 Java 類的過程。XBikes 開發(fā)人員使用 GLUE 生成基于 XSD 的 Java 類,并創(chuàng)建映射文件以便 GLUE 可以在 Java 對(duì)象和 XML 之間進(jìn)行序列化和反序列化操作。步驟是:
  
  1.開發(fā)人員使用 GLUE 提供的 schema2java 工具創(chuàng)建基于 CustomerData.xsd 架構(gòu)的 Java 類。
  
  schema2java CustomerData.xsd -g -p xbikes.common.dataconverters.customers
  
  2.schema2java 命令生成兩個(gè) Java 文件,CustomerData_TYPE.java 和 Customers_TYPE.java。XBikes 開發(fā)人員將這些文件添加到 Java 項(xiàng)目,將它們放在公共軟件包中以便于訪問。軟件包位于 xbikes.common.dataconverters.customers。
  
  3.schema2java 命令還生成一個(gè) CustomerData.map 文件,GLUE 序列化程序用它將字段映射到正確的 XML 元素和屬性。XBikes 開發(fā)人員將該映射文件復(fù)制到 文件夾中,GLUE 可在此查找 XML 序列化的映射文件。
  
  4.因?yàn)?GLUE 是選定的環(huán)境,所以開發(fā)團(tuán)隊(duì)將 Glue.jar 文件添加到構(gòu)建路徑。
  
  5.接下來,開發(fā)人員編寫 Helper 類以在 Java 數(shù)據(jù)和字符串間執(zhí)行轉(zhuǎn)換。他們將新類命名為 CustomerConverter,并將其添加到軟件包 xbikes.common.dataconverters 中。
  
  6.開發(fā)人員將兩種方法添加到 CustomerConverter 類,一種將 XML 字符串轉(zhuǎn)換成 Java 對(duì)象,另一種將 Java 對(duì)象轉(zhuǎn)換成 XML 字符串。這些方法使用 GLUE 序列化程序從基于 XSD 的 CustomerData_TYPE 和 Customers

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巩留县| 河北省| 赞皇县| 繁昌县| 鄂尔多斯市| 蓬安县| 宝兴县| 镇宁| 濮阳县| 宁都县| 定陶县| 浪卡子县| 青河县| 吴川市| 晋宁县| 罗山县| 合肥市| 宾川县| 淮滨县| 明星| 虞城县| 化德县| 江都市| 兴山县| 手游| 民县| 鹤峰县| 手机| 海晏县| 襄垣县| 鄂伦春自治旗| 尼勒克县| 长兴县| 启东市| 苏州市| 平顺县| 娄底市| 东光县| 台州市| 道孚县| 水富县|