在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

EJB核心技術及其應用(續)

EJB核心技術及其應用(續)

更新時間:2022-04-26 文章作者:未知 信息來源:網絡 閱讀次數:

四、開發EJB

1、類介紹:
  開發EJB的主要步驟一般來說,整個的開發步驟(開發,配置,組裝)包括如下幾個方面。開發:首先要定義三個類:Bean類本身,Bean的本地和遠程接口類。 配置:配置包括產生配置描述器--這是一個XML文件、聲明了Enterprise Bean的屬性、綁定了bean的class文件(包括stub文件和skeleton文件)。最后將這些配置都放到一個jar文件中。還需要在配置器中定義環境屬性。組裝應用程序:包括將Enterprise beans安裝到Server服務器中,測試各層的連接情況。程序組裝器將若干個Enterprise Beans與其它的組件結合起來。組合成一個完整的應用程序;蛘邔⑷舾蓚Enterprise beans組合成一個復雜的Enterprise Bean。管理Enterprise Bean。
  我們必須定義和編寫一些EJB中的基本類。如Enterprise bean類:這是Enterprise bean內部應用邏輯的實現。編寫Enterprise bean的遠程接口類。編寫Enterprise bean的本地接口類。說明主鍵類,主鍵類只是對于Entity bean才需要的。在Enterprise bean的配置描述器中指定主鍵的名字。Enterprise beans提供者定義了遠程接口和本地接口,實現了EJB類本身。Remote接口中提供了客戶調用EJB實現的應用邏輯函數的接口。而home接口提供了產生和定位remote接口實例的方法。
  在Enterprise bean本身類的實現,本地home接口,遠程remote接口之間并沒有正式的聯系(例如繼承關系)。但是,在三個類里聲明的方法卻必須遵守EJB里面定義的規范。例如: 你在Enterprise bean里面聲明了一個應用程序的方法或者說應用邏輯。也在beans的remote接口中聲明了這個方法,那么,這兩個地方必須要同樣的名字。Bean的實現里面必須至少有一個Create()方法:ejbCreate()。但是可以有多個帶有不同參數的create()方法! ≡趆ome接口中,也必須有相同的方法定義(參數的個數相同)。EjbCreate()方法返回的一個容器管理的持久對象。它們都返回一個容器管理持久性的主鍵值。但是,在home的相應的Create()方法中返回值的類型是remote接口。
  注意:實體bean的實現的ejbCreate方法有點不同。實體bean可以不定義ejbCreate方法。如果實體只是通過應用程序或通過數據庫管理程序的途徑被加到數據庫中,實體bean就省略了ejbCreate方法。EjbCreate返回的值是主鍵類型。如果ejbCreate方法是容器管理持久性的實體bean的方法,它的返回值就是NULL類型。如果實體bean實現了Bean管理的持久性,ejbCreate方法就返回值類型就是主鍵類型。容器的任務是把各接口和Enterprise bean的實現類結合起來。保證在編譯時和運行時,各接口和實現類是相對應的。
  EJB的實現類,各接口要從不同的基類中繼承下來。一個會話bean必須實現基類javax.ejb.SessionBean。而實體bean必須實現基類javax.ejb.EntiyBean。這些EJB的基類都是從javax.ejb.EnterpriseBean繼承而來。而javax.ejb.EnterpriseBean又是從java.io.Serializable繼承而來。每一個Enterprise Bean都必須有一個remote接口。Remote接口定義了應用程序規定客戶可以調用的邏輯操作。這些是一些可以由客戶調用的公共的方法,通常由Enterprise beans類來實現。注意,Enterprise bean的客戶并不直接訪問Bean。而是通過remote接口來訪問。Enterprise bean類的remote接口擴展了javax.ejb.EJBObject類的公共java接口。而Javax.ejb.EJBObject是所有remote接口的基類。其代碼如下:
package javax.ejb;
public interface EJBObject extends java.rmi.Remote{
public EJBHome getEJBHome() throws java.rmi.RemoteException;
public Object getPrimaryKey() throws java.rmi.RemoteException;
public void Remove() throws java.rmi.RemtoeException, java.rmi.RemoveException
public Handle getHandle() throws java.rmi.RemoteException;
boolean isIdentical (EJBObject p0) throws java.rmi.RemoteException;
}
  getEJBHome()方法允許你取得一個相關的Home接口。對于 實體Bean,用getPrimaryKey()方法獲得實體Bean的主鍵值。Remove()可以刪除一個Enterprise bean。具體的語義在各種不同類型的enterprise beans的生命周期中,由上下文中解釋的。方法getHandle()返回了一個Enterprise bean實例的持久的句柄。IsIndentical()方法允許你去比較Enterprise beans是否相同。

2、方法:
  所有的remote接口中的方法必須聲明為公共(public)的,并必須拋出java.rmi.RemotException異常。另外,所有的remote接口中的方法定義的參數和都必須是在RMI-IIOP中有效的。對每一個在remote接口中定義的方法,在Enterprise bean 類里面都要有相應的方法。相應的方法必須要有同樣的名字,同樣類型和數量的參數,同樣的返回值,而且還要拋出同樣的例外。 如下代碼顯示了一個ATM例子的會話bean的remote接口Atm,。里面聲明了一個應用方法transfer()。黑體部分表示EJB規范中必須要有的內容。Remote接口必須擴展javax.ejb.EJBObject類。從客戶端調用的Enterprise bean的每一個方法都必須在remote接口中聲明。Transfer()方法拋出了兩個意外。其中InSufficientFundsException例外是應用程序定義的意外。
Public interface Atm extends javax.ejb.EJBObject{
Public void transfer(String Source, String Target, float amount)
Throws java.rmi.RemoteException, InSufficientFundsException;
}
  Home接口必須定義一個或多個的Create()方法。每一個這樣的Create()方法都必須命名為Create。并且,它的參數,不管是類型還是數量都必須與bean類里面的ejbCreate()方法對應。注意,home接口中的Create()方法和bean類中ejbCreate()方法的返回值類型是不同的。實體bean的home接口還包含find()方法。 每一個Home接口都擴展了javax.ejb.EJBHome接口。如下代碼顯示了javax.ejb.EJBHome接口的定義:
package javax.ejb;
public interface EJBHome extends java.rmi.Remote() {
void remove(Handle handle) throws java.rmi.RemoteException,RemoveException;
void remove(Object primarykey) throws java.rmi.RemoteException,RemoveException;
EJBMetaData getEJBMetaData() throws RemoteException;
Homehandle getHomeHandle() throws RemoteException;
}
  這里提供了兩個remove()方法來刪除Enterprise bean的實例。第一個remove方法是通過句柄來刪除一個Enterprise bean的實例。第二個remove方法通過主鍵來刪除一個Enterprise bean的實例。 在眾多的Enterprise bean實例中,句柄唯一的標識一個實例。一個句柄與它引用的Enterprise bean有相同的生命期?紤]一個實體對象,客戶可以通過一個句柄來重新獲得相應的Enterprise bean的實例。一個句柄能夠對應一個Enterprise bean對象的多個實例。例如,即使當Enterprise bean對象所在的主機崩潰了,或者Enterprise bean對象在不同的機器之間移動,句柄仍是有效的。這里的句柄是Serialized句柄,與CORBA中的字符串化的CORBA對象的引用是相似的概念。在EJBHome接口中的第二個remove操作通過其主鍵來決定要刪除的Enterprise bean。主鍵可以是擴展了Java Object類的任何類型,但是,必須要實現Java的Serializable接口。主鍵是標識實體bean的主要的方法。通常,主鍵是數據庫中的一個關鍵字,唯一的定義了由實體bean代表的數據。
  方法getEJBMetaData()返回了Enterprise bean對象的metadata接口。這個接口允許客戶獲得Enterprise bean的metadata信息。當開發工具來編譯鏈接應用程序的時候,或者配置工具來配置的時候,可能會用到metadata信息。Javax.ejb.EJBMetadata接口提供了獲得javax.ejb.EJBHome接口,home類,remote接口,還有獲得主鍵的方法。也提供了一個isSesson()的方法來確定在放這個home接口的對象是會話bean還是實體bean! sStatelessSession()方法指示這個會話bean是有狀態還是無狀態的。如下代碼顯示了javax.ejb.EJBMetadata接口的定義部分的代碼。
Public javax.ejb; Public interface EJBMetaData{
EJBHome getEJBHome();
Class getHomeInterfaceClass();
Class getRemoteInterfaceClasss();
Class getPrimaryKeyClass();
Boolean isSession();
Boolean isStatelesssSession();
}
  對每一個Create()方法,EJB規范定義了如下的命名約定。它的返回值是會話bean的remote接口的類型。方法的名字只能是Create()。對會話bean類中的每一個ejbCreate()方法都必須有一個Create()與之對應。 對于每一個Create()方法的參數的類型和數量都必須與會話bean類中的ejbCreate()方法相對應。方法必須拋出java.rmi.RemoteException例外。 方法必須拋出javax.rmi.CreateExeption例外。 Create()方法的參數是用來初始化新的會話bean對象的。 如下代碼顯示了一個會話bean對象的不同的Create()方法,其中必須的部分用粗體顯示:
public interface AtmHome extends javax.ejb.EJBHome{
Atm create() throws java.rmi.RemoteException,javax.ejb.CreateException;
Atm create(Profile preferredProfile)
Throws java.rmi.RemoteExeption,javax.ehrows java.rmi.RemoteException,RemoveException;
EJBMetaData getEJBMetaData() throws RemoteException;
Homehandle getHomeHandle() throws RemoteException;
}
  這里提供了兩個remove()方法來刪除Enterprise bean的實例。第一個remove方法是通過句柄來刪除一個Enterprise bean的實例。第二個remove方法通過主鍵來刪除一個Enterprise bean的實例。在眾多的Enterprise bean實例中,句柄唯一的標識一個實例。一個句柄與它引用的Enterprise bean有相同的生命期。考慮一個實體對象,客戶可以通過一個句柄來重新獲得相應的Enterprise bean的實例。一個句柄能夠對應一個Enterprise bean對象的多個實例。例如,即使當Enterprise bean對象所在的主機崩潰了,或者Enterprise bean對象在不同的機器之間移動,句柄仍是有效的。這里的句柄是Serialized句柄,與CORBA中的字符串化的CORBA對象的引用是相似的概念。
  在EJBHome接口中的第二個remove操作通過其主鍵來決定要刪除的Enterprise bean。主鍵可以是擴展了Java Object類的任何類型,但是,必須要實現Java的Serializable接口。主鍵是標識實體bean的主要的方法。通常,主鍵是數據庫中的一個關鍵字,唯一的定義了由實體bean代表的數據。方法getEJBMetaData()返回了Enterprise bean對象的metadata接口。這個接口允許客戶獲得Enterprise bean的metadata信息。當開發工具來編譯鏈接應用程序的時候,或者配置工具來配置的時候,可能會用到metadata信息。Javax.ejb.EJBMetadata接口提供了獲得javax.ejb.EJBHome接口,home類,remote接口,還有獲得主鍵的方法。也提供了一個isSesson()的方法來確定在放這個home接口的對象是會話bean還是實體bean。IsStatelessSession()方法指示這個會話bean是有狀態還是無狀態的。如下代碼顯示了javax.ejb.EJBMetadata接口的定義部分的代碼。
Public javax.ejb;
Public interface EJBMetaData{
EJBHome getEJBHome();
Class getHomeInterfaceClass();
Class getRemoteInterfaceClasss();
Class getPrimaryKeyClass();
Boolean isSession();
Boolean isStatelesssSession();
}

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 大地资源网在线观看免费官网| 九九九九九国产| 成人亚洲视频在线观看| 日本精品www| 18禁网站免费无遮挡无码中文| 中文字幕在线中文| 激情深爱综合网| av丝袜天堂网| 2022中文字幕| 天堂中文视频在线| 亚洲最新免费视频| 1024精品视频| 国产精品免费看久久久无码| 久久精品国产精品亚洲色婷婷| 亚洲精品性视频| 国产精彩视频一区二区| 国产免费黄色小视频| 性久久久久久久久久久久久久| 777av视频| 麻豆一区二区三区在线观看| 少妇高清精品毛片在线视频| 九九九久久久久久久| 日韩av片在线看| 青娱乐自拍偷拍| 中国女人做爰视频| av动漫免费观看| 99精品视频网站| 黄色片免费网址| 亚洲免费视频播放| 麻豆传媒网站在线观看| 国产小视频精品| 麻豆一区二区三区视频| 1024av视频| 美女网站免费观看视频 | 欧美黑人经典片免费观看| 全黄性性激高免费视频| 青青青国产在线观看| 青青青青草视频| 熟妇人妻va精品中文字幕| 黄色一级片播放| 中文字幕 91| 韩国黄色一级大片| 色欲av无码一区二区人妻| 少妇性l交大片| 日本高清免费在线视频| 黄色三级视频在线播放| 91好吊色国产欧美日韩在线| 国产欧美日韩网站| 大桥未久一区二区| 2021国产视频| 精品一区二区成人免费视频 | 91视频成人免费| 欧美国产日韩在线视频| 久久成年人网站| 欧美黄色免费网址| 69堂免费视频| 黄色一级片黄色| 国产美女主播在线播放| 色婷婷综合久久久久中文字幕| 九九热99视频| 久久精品国产sm调教网站演员| 一道本视频在线观看| 污污网站在线观看视频| 被灌满精子的波多野结衣| 欧美a级黄色大片| 99精品一级欧美片免费播放| 九热视频在线观看| 成年人深夜视频| 亚洲精品乱码久久久久久自慰| 国产一二三四区在线观看| 九一免费在线观看| 亚洲欧洲日本精品| 色一情一乱一伦一区二区三区日本| 免费人成在线观看视频播放| 91大学生片黄在线观看| 日韩欧美视频免费在线观看| 韩国视频一区二区三区| 九九九九九国产| 久久久999免费视频| 欧美丝袜在线观看| 黑森林精品导航| 亚洲激情在线观看视频| 成人高清dvd| 免费毛片小视频| 一级片免费在线观看视频| 99re精彩视频| 777一区二区| 黄色a级三级三级三级| 成人精品小视频| 免费不卡av在线| 亚洲一区二区图片| 国产又猛又黄的视频| 丰满少妇在线观看| 亚洲综合在线一区二区| 久热精品在线观看视频| 真人做人试看60分钟免费| 久久国产精品国产精品| 最新中文字幕2018| 北条麻妃在线视频观看| 男人搞女人网站| 老司机av福利| 黄色片免费网址| 久久观看最新视频| 一级黄色香蕉视频| 亚洲一二区在线观看| 欧美又黄又嫩大片a级| 国产欧美精品一二三| 亚洲人成无码网站久久99热国产| 欧美 国产 精品| 国产精品88久久久久久妇女 | 日韩国产成人无码av毛片| 欧美国产日韩另类 | 黄色一级大片免费| 欧美午夜性生活| 91传媒久久久| 国产乱子夫妻xx黑人xyx真爽| 国产成人亚洲综合无码| 伊人久久在线观看| 午夜啪啪福利视频| 日本va中文字幕| www午夜视频| 天堂av手机在线| 精品人妻大屁股白浆无码| 男同互操gay射视频在线看| 亚洲精品天堂成人片av在线播放 | 精品国产无码在线| 极品美女扒开粉嫩小泬| 97视频在线免费播放| xx欧美撒尿嘘撒尿xx| 激情图片中文字幕| 国产欧美日韩小视频| 久久精品国产sm调教网站演员| 欧美日韩在线中文| 久久久久久蜜桃一区二区| 欧美性受xxxx黒人xyx性爽| 黑人巨大国产9丨视频| 吴梦梦av在线| 欧美一级爱爱视频| 免费看的黄色大片| 熟女少妇精品一区二区| 国产又黄又猛的视频| 欧美一二三不卡| 亚洲高清视频免费| 黄色大片中文字幕| 久久久久久蜜桃一区二区| 91免费国产精品| 国产视频一区二区视频| 久久久国产精华液999999| 久久精品免费网站| 久久久久久久久网| 黄页网站大全在线观看| 国产又大又黄又猛| 91国产精品视频在线观看| 女同性恋一区二区| www.激情小说.com| 天天av天天操| 超碰网在线观看| 亚洲区成人777777精品| 久久99999| 日本黄xxxxxxxxx100| 嫩草av久久伊人妇女超级a| 在线免费视频a| 日本一二三区在线| 中文字幕免费高清在线| 激情六月天婷婷| 中文字幕55页| 日本成人中文字幕在线| 黄色三级中文字幕| 亚洲AV无码成人精品一区| 五月婷婷狠狠操| 免费观看日韩毛片| 国产精品99久久免费黑人人妻| 国产精品igao激情视频| 久久久久久久9| 自拍偷拍视频在线| 91国在线高清视频| 女同性恋一区二区| 日本黄色片一级片| www.国产二区| 天堂8在线天堂资源bt| 91香蕉国产线在线观看| 激情五月俺来也| 免费看污污网站| 国产精品啪啪啪视频| 男人j进女人j| 日韩亚洲欧美一区二区| 国产女人18毛片| 免费的av在线| 欧美亚洲一二三区| av免费播放网址| www.av片| 欧美日韩在线视频一区二区三区| 黄色激情在线视频| 97在线免费视频观看| 97干在线视频| 国产精品视频一区二区三区四区五区| 麻豆tv在线播放| 欧美性猛交久久久乱大交小说 | 久久综合久久色| 中文字幕有码av|