亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET應用程序中調用EJB

2019-11-18 19:08:52
字體:
來源:轉載
供稿:網友

作者: 朱先忠編譯 出處: 天極網

  摘要 本文將介紹如何實現你的asp.net應用程序與J2EE應用程序服務器之間的交互以及怎樣使得調用EJB與調用xml Web服務一樣地容易。

   簡介

  今天,許多大型組織發現他們自己正在擁有和使用由.NET技術和J2EE技術混合組成的開發團隊和發布服務器。為了平衡通過J2EE應用程序服務器發送的企業質量,公司的商業邏輯經常以企業javaBean(EJB)的形式發布于J2EE應用程序服務器上。另一方面,為了滿足日益變化的商業發展的要求,多數開發者比較喜歡在具有高度生產性能的Visual Studio.NET開發環境下實現描述邏輯。當你需要把.NET描述層連接到J2EE商業邏輯層時,挑戰就產生了。

  讓我們看一下Visual MainWin for J2EE怎么幫助你面臨和克服-從Visual Studio.NET中,用C#或Visual Basic.NET來實現ASP.NET描述層然后再調用以EJB形式實現的商業邏輯層-這一挑戰性開發的。請放心,你將不需要糾纏于EJB API編碼就能做這到一點。借助于Visual MainWin for J2EE,兩個層-ASP.NET前端和EJB后臺-都能夠以一個純粹的J2EE應用程序的形式運行于你的J2EE應用程序服務器上,并進行性能優化和實現一致的基于J2EE的安全性。

  為實現從Visual Studio .NET中調用EJB,你必須安裝Visual MainWin for J2EE的企業版本。當然,你可以從mainsoft.com網站上下載它的評估版本進行試驗性分析。

  示例分析

  本文的股票投資(StocksPortfolio)示例-它向你展示怎樣使用一個ASP.NET Web層和一個J2EE商業層來創建應用程序-被安裝和建檔于Visual MainWin for J2EE中。本示例實現了一個簡單的ASP.NET網頁-用戶使用之來管理他們的股票投資-和一個ASP.NET Web服務-它用于提供虛構的股票行情。本示例還使用了一個會話EJB-為你的J2EE應用程序服務器所用以實現買賣股票的邏輯。


圖1.運行于JBoss應用程序服務器上的StocksPortfolio應用程序


  把EJB添加到你的.NET環境

  從Visual Studio.NET中調用一個EJB與調用一個Web服務一樣簡單。在你的解決方案資源管理器中,右擊"References",然后選擇"Add EJB Reference",即出現一新的僅可用于Visual MainWin for J2EE工程的參考類型,它很類似于標準的Visual Studio .NETIDE下的Web參考(見圖2)。


圖2.添加EJB參考
  為添加一個EJB參考到你的Visual MainWin for J2EE工程,你僅需要一個Java檔案(JAR)文件-它實現了該EJB或者包含它的本地和遠程接口。Visual MainWin能夠查詢應用程序服務器有關所有發布在它上面的EJB的信息并在一個對話框中顯示相應于你的JAR定義的EJB。你只需要選擇你想要使用的特定EJB(可能多個)即可(見圖3)。

圖3.添加EJB參考對話框
  你也可以在一個遠程應用程序服務器上消費該EJB,只要它與你的工程相關的本地應用程序服務器是一樣的類型。這可能是一個Windows,linux,Unix,主框架或任何其它支持J2EE的服務器。為了消費一個發布于一個遠程服務器上的EJB,請點擊"Advanced"來展開該對話框(見圖4)。

圖4.高級模式的添加EJB參考對話框
  輸入JNDI URL到遠程J2EE應用程序服務器中,然后點擊"Fetch From Server"。Visual MainWin將列出所有的發布于遠程服務器上的EJB和相應于你的JAR文件的EJB。該操作與本地EJB是一致的。
  選擇你想要消費的EJB(可能多個),點擊OK。一個新的EJB參考文件夾即產生于你的解決方案資源管理器瀏覽器中,如圖5所示。該文件夾包含每一個剛添加上去的EJB參考的基于服務器的參考,類似于Web參考結點。另外,還生成一個包裝類來簡化你的EJB調用編碼。在后面部分我們將討論該包裝類。

圖5.顯示有EJB參考的解決方案資源管理器文件夾
  從.NET中調用EJB方法
  當你添加一個EJB參考到你的工程時,系統將自動產生一個.NET(C#或VB.NET)類,它描述了一個簡單的到該EJB的接口。該類包括要求創建該EJB和調用它的方法的J2EE編碼。這個.NET類通過它自己的公共方法暴露了該EJB遠程接口的方法。為調用你的EJB的商業方法,你只需簡單地創建一個該包裝類的實例并調用適當的包裝類方法即可。
  下面是從你的.NET工程中調用一個EJB方法的代碼示例:
//創建StockTrader EJB的一個實例.
localhost.StockTraderEJB trader = new localhost.StockTraderEJB();
// 購買用戶在股票名稱文本框中定義的股票,
//所購買的股份數相應于股份數文本框中的數字
trader.buy(tbStockName.Text, Int32.Parse(tbNumOfShares.Text));
  深入分析
  在上面產生的包裝類的靜態構造器中執行被請求的J2EE調用以創建該EJB的home對象。然后,在一個缺省的構造器中,它使用home對象來創建該EJB對象。該EJB對象是以一個包裝類成員的形式存儲的,通過它來調用商業EJB方法。
  下面是創建該StockTrader EJB的包裝類的部分代碼:
PRivate static trading.StockTraderHome home;
private trading.StockTraderEJB ejbObj;
static StockTraderEJB() {
// 創建一個Java命名(JNDI)上下文
Context context;
context = vmw.j2ee.J2EEUtils.CreateContext(null, null);
object homeObj;
//從JNDI服務器獲取home對象
homeObj = context.lookup("ejb/StockTrader");
home = ((trading.StockTraderHome)(homeObj));
}
//缺省的構造器:創建一個新的EJB實例
public StockTraderEJB() {
this.ejbObj = home.create();
}
  這個包裝類通過它的公共方法暴露該EJB遠程接口的方法。然后,每個這些方法通過EJB對象調用你的EJB的相應的商業方法。下面的代碼向你展示股票商的EJB包裝器中的方法:
public virtual void buy(string arg_0, int arg_1) {
this.ejbObj.buy(arg_0, arg_1);
}
public virtual void sell(string arg_0, int arg_1) {
this.ejbObj.sell(arg_0, arg_1);
}
  Visual MainWin還負責在Java和.NET之間映射數據類型。例如,如果你的EJB的方法之一以參數形式收到一個java.lang.calendar對象,那么,你將使用一個.NET System.DateTime對象參數來調用這個方法并把它映射到一個java.lang.calendar對象上。隨后,如果你的EJB方法返回一個java.lang.class,你將收到一個System.Type對象作為代替。
  調試問題
  即使Visual MainWin對開發工作進行了簡化處理,你仍然可能需要調試你的多級的、混合的ASP.NET/EJB應用程序。Visual MainWin調試器允許你從Visual Studio .NET IDE內部調試你的混合應用程序。你可以穿過語言邊界在你的C#或VB.NET代碼中設置中斷,單步調試EJB Java代碼和調試你的全部應用程序。而且,因為調試需要出現于任何問題發生的地方,所以,Visual MainWin調試器能夠依附到你的J2EE應用程序服務器,而不管它是運行于Linux,Unix還是其它框架之上,只要它能運行在調試模式就行。

圖6.使用Visual MainWin調試器來調試EJB源代碼
  Visual MainWin為你創建的應用程序是一個標準的J2EE servlet應用程序-它能夠通過J2EE應用程序服務器主管控制臺進行發布和管理,就象任何其它J2EE servlet應用程序一樣。因此,你的ASP.NET描述層和你的EJB商業邏輯層都能依靠一樣的J2EE安全基礎結構。你的混合的ASP.NET/EJB應用程序能依靠一個通過使用J2EE servlet認證的一致的安全模型,而你的應用程序服務器用戶和角色定義也能通過平衡基于角色的授權機制來保證安全性。
  總結
  1. 本文討論了遠程對象和接口。通過Visual MainWin進行本地對象消費也是可能的。為了發布一個使用本地對象的應用程序,你必須創建一個企業檔案(EAR)文件-它既包括你的應用程序的WAR文件又包括本地EJB的JAR文件。
  2. 雖然Visual MainWin能夠把大多數的.NET類型映射到Java類型,它卻不能進行集合類型的映射-因為這種映射可能導致一種性能損失。因此,你可以選擇從你的.NET代碼中處理Java集合類型或你自己執行這樣的轉化。
  3. Visual MainWin允許你消費會話bean和非事務性實體beans。事務性實體bean不能被透明地消費,因此你必須手工編碼J2EE事務調用。然而,在大多數情況中事務性實體bean可以通過會話bean進行存取,因此你不大可能需要這樣做。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成人av在线| 成人激情视频在线| 在线激情影院一区| 久久久久久成人精品| 国产成一区二区| 久久久亚洲精选| 日韩欧中文字幕| 亚洲第一综合天堂另类专| 亚洲精品电影在线| 欧美日韩国产va另类| 日韩在线视频观看| 成人黄在线观看| 国产精品久久久久久久久| 久久在精品线影院精品国产| 亚洲人成网站999久久久综合| 亚洲国产欧美日韩精品| 91精品久久久久久| 在线观看免费高清视频97| 日韩成人在线播放| 国产精品va在线| 亚洲欧美精品中文字幕在线| 国产精品视频久| 日韩精品中文字幕视频在线| 欧美一性一乱一交一视频| 国产精品吹潮在线观看| 亚洲国产精品一区二区三区| 78m国产成人精品视频| 成人有码在线播放| 日韩av在线不卡| 4438全国亚洲精品在线观看视频| 尤物99国产成人精品视频| 精品中文字幕在线2019| 久久躁狠狠躁夜夜爽| 国产精品对白刺激| 久久久久国产精品免费网站| 午夜精品久久久久久久99黑人| 欧美国产日韩在线| 国产suv精品一区二区三区88区| 美女精品久久久| 久久乐国产精品| 国产丝袜高跟一区| 精品日韩中文字幕| 色哟哟入口国产精品| 视频在线观看99| 美女av一区二区| 成人午夜激情免费视频| 亚洲男人天堂古典| 国产精品男人爽免费视频1| 欧洲午夜精品久久久| 欧美一区二区三区图| 日韩在线免费视频观看| 国产成人精品一区二区三区| 亚洲精品福利免费在线观看| 97在线观看视频国产| 日韩www在线| 亚洲欧美成人一区二区在线电影| 欧美日韩国产在线播放| 欧美乱大交xxxxx另类电影| 国产欧美日韩专区发布| 91免费精品国偷自产在线| 欧美午夜激情在线| 8090成年在线看片午夜| 91探花福利精品国产自产在线| 浅井舞香一区二区| 91wwwcom在线观看| 欧美日韩免费在线观看| 欧美日韩精品国产| 国产精品女人久久久久久| 国产午夜精品理论片a级探花| 久久深夜福利免费观看| 色播久久人人爽人人爽人人片视av| 日韩精品一区二区视频| 精品亚洲一区二区三区| 欧美性猛交xxxx| 福利二区91精品bt7086| 成人乱人伦精品视频在线观看| 成人免费视频a| 久久色免费在线视频| 日韩精品免费在线视频| 亚洲福利视频在线| 国产成人一区二区| 成人日韩av在线| 欧美精品videofree1080p| 国产精品久久久久久久一区探花| 亚洲国产另类久久精品| 日韩免费av在线| 日韩av网站电影| 午夜精品一区二区三区在线视频| 国产精品96久久久久久又黄又硬| 精品亚洲一区二区三区在线观看| 国产999在线观看| 午夜精品久久久久久久99黑人| 日韩欧美在线免费| 欧美日韩国产中文字幕| 色妞色视频一区二区三区四区| 亚洲影院在线看| 一区二区三区无码高清视频| 日韩免费在线看| 国产精品夜间视频香蕉| 日韩视频精品在线| 亚洲女性裸体视频| 亚洲福利在线视频| 国产成人在线亚洲欧美| 亚洲高清一二三区| 亚洲精品一区二区久| 欧美成人sm免费视频| 国产精品成人aaaaa网站| 国产亚洲欧美日韩美女| 亚洲国产一区二区三区在线观看| 国产精品美女午夜av| 欧美极品欧美精品欧美视频| 日韩中文字幕在线| 国产精品一二三在线| 欧美一区视频在线| 国产日韩精品一区二区| 成人h猎奇视频网站| 欧洲亚洲妇女av| 97色在线播放视频| 久久97久久97精品免视看| 国产精品视频午夜| 国产亚洲一区二区在线| 久久久噜噜噜久久| 国产女人精品视频| 日韩av快播网址| 久久精品成人欧美大片古装| 国产日韩欧美视频在线| 欧美疯狂性受xxxxx另类| 亚洲成人av在线| 欧美视频中文在线看| 日韩欧美国产黄色| 久久亚洲综合国产精品99麻豆精品福利| 在线亚洲欧美视频| 91精品国产一区| 97不卡在线视频| 一区二区欧美激情| 亚洲国产精品嫩草影院久久| 粉嫩av一区二区三区免费野| 免费91麻豆精品国产自产在线观看| 国产成人短视频| 视频在线观看一区二区| 亚洲福利在线视频| 性欧美亚洲xxxx乳在线观看| 91黑丝在线观看| 91精品国产免费久久久久久| 欧美精品免费在线观看| 超薄丝袜一区二区| 国产一区深夜福利| 亚洲自拍欧美另类| 国产精品69av| 亚洲石原莉奈一区二区在线观看| 亚洲欧美日韩另类| 九色精品美女在线| 成人有码视频在线播放| 日韩有码视频在线| 欧美亚洲国产成人精品| 91精品视频观看| 国产一区视频在线播放| 久久久久久久久久久亚洲| 日韩欧美国产高清91| 不卡av电影在线观看| 国产不卡精品视男人的天堂| 国外成人在线播放| 久久久精品999| 国产亚洲欧洲黄色|