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

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

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

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

              有時客戶端程序(如JSP、Servlet)會和EJB組件運行在同一個JVM上,如在同一個J2EE服務(wù)器(JBoss、Weblogic等)中運行。這時就沒必要
          再通過遠程(remote)接口訪問Session Bean了,因為客戶端和session bean都在同一個jvm上,只需要通過本地接口(local)訪問即可。就象直接訪問本地類一樣(當(dāng)然,不能直接訪問EJB類,需要使用jndi和local接口來獲得本地接口對象。當(dāng)然,也可以通過remote接口來訪問ejb,不過這樣會有一些性能損失。就象在同一臺機器上還通過socket進行訪問一樣,很多性能都損耗在網(wǎng)絡(luò)上了。下面我們來舉個簡單的例子來看一下如何使用本地接口來訪問session bean。
              先建立一個session bean本地接口,代碼如下:
          package service;

          import java.util.List;
          import javax.ejb.Local;

          @Local
          public interface ShoppingCart
          {
              
          //  添加某個商品信息
              public void addCommodity (String value);
              
          //  獲得客戶購買的所有商品的紗銜泥
              public List<String> getCommodity();
          }

              關(guān)于Session Bean的具體實現(xiàn)類與遠程接口的實現(xiàn)類一樣,讀者可以參考《編寫有狀態(tài)的SessionBean》一文中的ShoppingCartBean類。
              下面在Eclipse中新建立一個Web工程(工程名:JBossWeb),該工程需要引用MyEJB工程(包含EJB組件的工程),在WebContent目錄中建立一個test.jsp頁面,代碼如下:
          <%@ page language="java" contentType="text/html; charset=GB18030"
              pageEncoding
          ="GB18030" import="java.util.List,java.util.Properties,
                                javax.naming.InitialContext,service.ShoppingCart
          "%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
          <title>Insert title here</title>
          </head>
          <body>

          </body> remote
          <%
              Properties prop 
          = new Properties();
              InitialContext ctx 
          = new InitialContext();        
              ShoppingCart shoppingCart 
          = (ShoppingCart) ctx
                  .lookup(
          "ShoppingCartBean/local");
              shoppingCart.addCommodity(
          "自行車");
              shoppingCart.addCommodity(
          "筆記本電腦");
              shoppingCart.addCommodity(
          "液晶電視");
              List
          <String> commodities = shoppingCart.getCommodity();
              for(String commodity: commodities)
              {
                  System.out.println(commodity);
              } 
          %>
          </html>
              訪問本地接口要使用的jndi name應(yīng)為“ShoppingCartBean/local”。
              啟動JBoss,在瀏覽器中輸入如下的URL:
          http://localhost:8080/JBossWeb/test.jsp
              在Eclipse的Console中會輸出如下的信息:
          16:55:17,633 INFO  [STDOUT] 自行車
          16:55:17,633 INFO  [STDOUT] 筆記本電腦
          16:55:17,633 INFO  [STDOUT] 液晶電視

          下一篇:eclipse + JBoss 5 + EJB3開發(fā)指南(4):Session Bean中的注釋方法



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

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



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


          新浪微博:http://t.sina.com.cn/androidguy   昵稱:李寧_Lining

          posted on 2009-05-14 17:15 銀河使者 閱讀(2504) 評論(0)  編輯  收藏 所屬分類: web 、 原創(chuàng)ejb3 、JBoss

          主站蜘蛛池模板: 高台县| 新巴尔虎左旗| 安新县| 页游| 明光市| 郯城县| 益阳市| 瓦房店市| 南召县| 三江| 武义县| 桂阳县| 河间市| 视频| 巴马| 额济纳旗| 肃宁县| 永胜县| 开封市| 高唐县| 南通市| 陇南市| 双桥区| 宁城县| 高雄县| 罗定市| 辛集市| 宜章县| 杂多县| 新蔡县| 阜平县| 西峡县| 西和县| 芦溪县| 花垣县| 叙永县| 巴塘县| 平塘县| 布拖县| 安乡县| 衡山县|