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

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

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

    隨筆 - 312, 文章 - 14, 評(píng)論 - 1393, 引用 - 0
    數(shù)據(jù)加載中……

    eclipse + JBoss 5 + EJB3開(kāi)發(fā)指南(2):編寫(xiě)有狀態(tài)的SessionBean

    本文為原創(chuàng),如需轉(zhuǎn)載,請(qǐng)注明作者和出處,謝謝!

    上一篇:eclipse + JBoss 5 + EJB3開(kāi)發(fā)指南(1):編寫(xiě)第一個(gè)無(wú)狀態(tài)的SessionBean

        編寫(xiě)有狀態(tài)的(Stateful)的Session Bean也非常簡(jiǎn)單,只需要將無(wú)狀態(tài)注釋(@Stateless)改成有狀態(tài)注釋?zhuān)?#64;Stateful)即可。如果使用Stateful Sessionbean,客戶端在使用同一個(gè)SessionBean對(duì)象實(shí)例時(shí)可以保存狀態(tài),也就是說(shuō),在多次引用該對(duì)象時(shí)實(shí)際上在服務(wù)端是使用的同一個(gè)Sessionbean的對(duì)象實(shí)例,而無(wú)狀態(tài)sessionbean使用了不同的sessionbean對(duì)象實(shí)例,因此,是無(wú)法保存狀態(tài)的。
        下面將編寫(xiě)一個(gè)簡(jiǎn)單的購(gòu)物車(chē)的例子,該例子將客戶購(gòu)買(mǎi)的商品都保存在stateful sessionbean中的List對(duì)象中。然后在客戶端使用同一個(gè)sessionbean的對(duì)象實(shí)例輸出這些商品。我們首先來(lái)實(shí)現(xiàn)一個(gè)sessionbean的遠(yuǎn)程接口,這和無(wú)狀態(tài)sessionbean是一樣的。代碼如下:
    package service;

    import java.util.List;
    import javax.ejb.Remote;
    @Remote
    public interface ShoppingCart
    {
        
    //  添加某個(gè)商品信息
        public void addCommodity (String value);
        
    //  獲得客戶購(gòu)買(mǎi)的所有商品的紗銜泥
        public List<String> getCommodity();
    }

        為了方便,在這里只將商品名保存在List對(duì)象中,讀者也可以在List對(duì)象中保存更復(fù)雜的信息,如使用一個(gè)對(duì)象來(lái)保存商品信息。
        下面來(lái)編寫(xiě)具體的Stateful sessionbean,代碼如下:
    package service;

    import java.util.ArrayList;
    import java.util.List;
    import javax.ejb.Stateful;

    @Stateful
    public class ShoppingCartBean implements ShoppingCart
    {
        
    private List<String> shoppingCart = new ArrayList<String>();

        @Override
        
    public void addCommodity(String value)
        {
            shoppingCart.add(value);        
        }

        @Override
        
    public List<String> getCommodity()
        {
            
    return shoppingCart;
        }    
    }

        最后我們編寫(xiě)一個(gè)客戶端調(diào)用程序,代碼如下:
    package test;

    import java.util.List;
    import java.util.Properties;
    import javax.naming.InitialContext;
    import service.ShoppingCart;

    public class Client
    {

        
    public static void main(String[] args) throws Exception
        {
            Properties prop 
    = new Properties();
            InitialContext ctx 
    = new InitialContext();        
            ShoppingCart shoppingCart 
    = (ShoppingCart) ctx
                    .lookup(
    "ShoppingCartBean/remote");
            shoppingCart.addCommodity(
    "自行車(chē)");
            shoppingCart.addCommodity(
    "筆記本電腦");
            shoppingCart.addCommodity(
    "液晶電視");
            List
    <String> commodities = shoppingCart.getCommodity();
            
    for(String commodity: commodities)
            {
                System.out.println(commodity);
            }
        
        }
    }

        在客戶端調(diào)用時(shí),需要將ShoppingCart接口復(fù)制到客戶端,當(dāng)然,@Remote可以去掉。別忘了引用JBoss安裝目錄中的client目錄中的jar文件。客戶端仍然使用了jndi.properties文件來(lái)配置相應(yīng)的信息,該文件位于src目錄下,內(nèi)容如下;
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
    java.naming.provider.url
    =localhost

        在執(zhí)行上面的程序后,將輸出如下的信息:
    自行車(chē)
    筆記本電腦
    液晶電視

        從上面的輸出結(jié)果可以看出,使用getCommodity方法成功獲得了所有的商品信息。要注意的是,需要使用同一個(gè)sessionbean對(duì)象實(shí)例(shoppingCart)才能保存狀態(tài)。如果在web應(yīng)用程序中,需要將shoppingCart對(duì)象保存在Session中,這樣在同一個(gè)會(huì)話中的用戶就可以使用該購(gòu)物車(chē)對(duì)象了。

    下一篇:eclipse + JBoss 5 + EJB3開(kāi)發(fā)指南(3):使用Session Bean的本地接口





    Android開(kāi)發(fā)完全講義(第2版)(本書(shū)版權(quán)已輸出到臺(tái)灣)

    http://product.dangdang.com/product.aspx?product_id=22741502



    Android高薪之路:Android程序員面試寶典 http://book.360buy.com/10970314.html


    新浪微博:http://t.sina.com.cn/androidguy   昵稱(chēng):李寧_Lining

    posted on 2009-05-13 09:51 銀河使者 閱讀(2863) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 原創(chuàng)ejb3 、JBoss

    主站蜘蛛池模板: 无人影院手机版在线观看免费| 亚洲av午夜精品无码专区| 亚洲嫩草影院久久精品| xxxxxx日本处大片免费看| 国产精品冒白浆免费视频| 亚洲深深色噜噜狠狠网站| 两性刺激生活片免费视频| 亚洲成A∨人片在线观看无码| 97亚洲熟妇自偷自拍另类图片| 亚洲国产精华液网站w| 久久九九免费高清视频| 亚洲高清成人一区二区三区| 国产天堂亚洲精品| 亚洲电影免费在线观看| 亚洲成a人片在线观看无码 | 一二三四免费观看在线电影| 亚洲第一页在线播放| 国产国产人免费视频成69堂| 久久乐国产综合亚洲精品| 青青草国产免费久久久下载| 亚洲av无码一区二区三区四区| 在线观看的免费网站无遮挡| 亚洲三级在线播放| 四虎影院免费视频| 日韩电影免费在线观看网址| 国产国拍精品亚洲AV片| 在线a免费观看最新网站| 亚洲色大成WWW亚洲女子| 久久乐国产精品亚洲综合| 暖暖免费在线中文日本| 久久亚洲国产成人影院| 亚洲精品无码久久久久AV麻豆| 亚洲一区欧洲一区| 亚洲国产精品成人AV无码久久综合影院 | 国产精品亚洲小说专区| 伊人婷婷综合缴情亚洲五月| 最近免费中文在线视频| 免费无码午夜福利片| 久久精品国产亚洲av麻豆| 成人免费无码大片a毛片软件 | 99re6热视频精品免费观看|