<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 66,  comments - 11,  trackbacks - 0
    為將企業Bean的中間件服務需求告知EJB容器,開發者還需生成部署描述符。
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee"
     xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation
    ="http://java.sun.com/xml/ns/j2ee
     http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
    >
    <!-- 
        <ejb-name>:企業Bean的昵稱。在部署描述符的其他地方能夠引用它,供設置其他參數使用。
        <home>:Home接口的全限定名。
        <remote>:遠程接口的全限定名。
        <local-home>:本地Home接口的全限定名。
        <local>:本地接口的全限定名。
        <ejb-class>:企業Bean類的全限定名。
        <session-type>:標識企業Bean是有狀態的,還是無狀態的。
        <transaction-type>:事務類型。
     
    -->
        
    <enterprise-beans>
            
    <session>
                
    <ejb-name>Hello</ejb-name>
                
    <home>examples.HelloHome</home>
                
    <remote>examples.Hello</remote>
                
    <local-home>examples.HelloLocalHome</local-home>
                
    <local>examples.HelloLocal</local>
                
    <ejb-class>examples.HelloBean</ejb-class>
                
    <session-type>Stateless</session-type>
                
    <transaction-type>Container</transaction-type>
            
    </session>
        
    </enterprise-beans>
    </ejb-jar>

    Ejb-jar文件:
    HelloWorld EJB組件準備好了之后只需將他們打包成Ejb-jar文件。手工創建jar文件
    jar cf HelloWorld.jar *

    注意:ejb-jar.xml文件必須放置在META-INF子目錄中。當EJB容器初次打開Ejb-jar文件時,將在ejb-jar.xml中查找Ejb-jar所包含的EJB組件信息。

    如何調用EJB組件:
    目前,存在2類客戶:
    1、基于Java RMI-IIOP的客戶。這類客戶使用JNDI,即通過網絡查找對象。另外,它們使用JTA控制事務。
    2、CORBA客戶。這類客戶村尋CORBA標準。這對于使用其他語言訪問EJB組件的客戶而言,意義深遠,CORBA客戶使用CORBA命名服務,即通過網絡查找對象。
    訪問EJB組件的步驟:
    1、查找Home對象
    2、使用Home對象創建EJB對象
    3、調用EJB對象的業務方法
    4、銷毀EJB對象

    查找Home對象:
    開發EJB應用的最主要目標之一是,應用代碼能夠"一次編寫,到處運行".如果將已部署在機器A上的EJB應用遷移到機器B上,EJB應用代碼不需要改動,因為EJB實現了位置透明性。
    借助于命名和目錄服務能夠實現EJB的位置透明性。命名和目錄服務是能夠在網絡中存儲和查找資源的產品。

    在企業部署場景中,EJB服務器使用命名服務存儲位置信息,而這些位置信息是用于標識資源的,其中的資源涉及到EJB Home對象、企業Bean環境屬性、數據庫JDBC驅動、消息服務驅動和其他資源等。通過使用命名服務,應用代碼不用將具體機器或資源名硬編碼在代碼中,這就是EJB所具備的位置透明性,它使得代碼具有便攜性。

    為實現位置透明性,EJB容器需要屏蔽掉Home對象的具體位置,使得EJB組件的客戶代碼感知不到其具體位置??蛻舨挥脤ome對象宿主的機器名硬編碼于代碼中。相反,使用JNDI就能夠查找到Home對象。物理上,Home對象可以存在于網絡上的任何地方,比如在運行EJB容器的同一進程地址空間中,其他機器上的EJB容器中。

    客戶為定位Home對象,它必須提供企業Bean的Home對象的JNDI昵稱??蛻羰褂迷撽欠Q標識所需的Home對象。一旦將EJB組件部署到容器中,容器會自動將HelloHome昵稱綁定到Home對象。因此,在對已部署EJB組件的物理機器位置不知情時,開發者能夠在任一機器上使用該昵稱查找到上述Home對象,借助于JNDI能夠查找到它。JNDI能夠在網絡上查找命名服務,或在JNDI樹中查找到Home對象,當然,Home對象也可能位于客戶同一進程中,最后一旦找到Home對象,客戶將獲得對它的引用。
    package com.wyq.ejb;

    import java.util.Properties;

    import javax.naming.Context;
    import javax.naming.InitialContext;

    /**
     * 客戶代碼實例,用于調用簡單、無狀態會話Bean中的方法。
     *
     
    */
    public class HelloClient {

        
        
    public static void main(String[] args)throws Exception {
            
    /*
             * 設置屬性,用于JNDI初始化,從命令行讀入屬性。
             
    */
            Properties props 
    = System.getProperties();
            
    /*
             * 初始上下文是連接到JNDI樹的入口。
             * 借助于環境屬性,能夠完成JNDI驅動、服務器的網絡地址等的設置
             
    */
            Context ctx 
    = new InitialContext(props);
            
    /*
             * 獲得對Home對象的引用。Home對象是創建EJB對象的工廠。
             
    */
            Object obj 
    = ctx.lookup("HelloHome");
            
    /*
             * Home對象是RMI-IIOP對象。因此,需要借助于特殊的RMI-IIOP造型操作將它們造型成RMI-IIOP對象
             
    */
            HelloHome home 
    =(HelloHome)javax.rmi.PortableRemoteObject.narrow(obj,HelloHome.class);
            
    /*
             * 使用工廠,來創建Hello EJB對象。
             
    */
            Hello hello 
    = home.create();
            
    /*
             * 調用EJB對象的hello()方法。它會將調用委派給EJB Bean類實例。一旦接收到響應結果,它便會返回。
             
    */
            System.out.println(hello.hello());
            
    /*
             * 在使用完EJB對象后,需要銷毀它。EJB容器負責銷毀EJB對象。
             
    */
            hello.remove();

        }

    }

    posted on 2009-10-31 12:36 王永慶 閱讀(130) 評論(0)  編輯  收藏 所屬分類: EJB學習筆記
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    關注blogs

    搜索

    •  

    最新評論

    • 1.?re: 心中的那個她[未登錄]
    • 如果心情能那么容易放開就好了,碰到她是我的緣分,但是她的緣分不知道在哪里。
    • --王永慶
    • 2.?re: 心中的那個她[未登錄]
    • 兄弟,喜歡就大膽去追好了,就是因為喜歡才會有不愉快,如果想一輩子沒有這些煩惱,找一個可有可無的人就好了。這種事講的是緣分吧。別人對你好不好其實不太重要。放開心情就好了。
    • --萍水相逢
    • 3.?re: 心中的那個她
    • 只能同甘不能共苦,就他媽算了吧,程序員也是人??!我現在也很討厭女的不理解人情。
    • --咖啡妝
    • 4.?re: 難以割舍的那份情感
    • 評論內容較長,點擊標題查看
    • --王永慶
    • 5.?re: 難以割舍的那份情感
    • 評論內容較長,點擊標題查看
    • --隔葉黃鶯

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品国产96精品亚洲| 在线播放免费播放av片| 久久久久噜噜噜亚洲熟女综合| 亚洲av无码一区二区三区天堂 | 四虎1515hm免费国产| 亚洲人成色4444在线观看| 在线免费观看一级片| 亚洲av永久中文无码精品| 又爽又高潮的BB视频免费看| 久久精品国产亚洲AV未满十八| 国产美女做a免费视频软件| 美女视频黄视大全视频免费的| 亚洲精品无码永久在线观看| 一个人免费观看www视频| 国产亚洲一区二区三区在线| 最近中文字幕大全免费版在线| 亚洲国产精品无码AAA片| 最近免费mv在线电影| 色拍自拍亚洲综合图区| 动漫黄网站免费永久在线观看| 亚洲字幕AV一区二区三区四区| 国产无遮挡色视频免费视频| 一个人免费播放在线视频看片| 亚洲日韩v无码中文字幕| 37pao成人国产永久免费视频| 亚洲乱人伦精品图片| 哒哒哒免费视频观看在线www| 国产日韩在线视频免费播放| 久久精品国产亚洲av麻豆色欲 | 免费无码又爽又黄又刺激网站| 亚洲熟女一区二区三区| 99久久国产热无码精品免费| 久久久久久久久无码精品亚洲日韩| 亚洲一级特黄无码片| 91精品国产免费久久国语蜜臀 | 全免费a级毛片免费看不卡| 在线播放免费人成视频网站| 久久久久亚洲av无码专区| 美女黄网站人色视频免费国产| 一级毛片aaaaaa视频免费看| 亚洲国产综合在线|