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

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

          本文為原創,如需轉載,請注明作者和出處,謝謝!

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

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

              關于Session Bean的具體實現類與遠程接口的實現類一樣,讀者可以參考《編寫有狀態的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應為“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開發指南(4):Session Bean中的注釋方法



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

          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 銀河使者 閱讀(2496) 評論(0)  編輯  收藏 所屬分類: web 原創ejb3JBoss

          主站蜘蛛池模板: 台湾省| 大庆市| 郓城县| 米脂县| 兰州市| 资中县| 永吉县| 平远县| 建水县| 瑞昌市| 宜章县| 郴州市| 全州县| 遵义市| 吴川市| 开阳县| 巴南区| 额敏县| 拉孜县| 色达县| 德保县| 光泽县| 花莲县| 和静县| 辰溪县| 荆州市| 永清县| 南木林县| 江陵县| 察哈| 梅河口市| 哈密市| 鸡东县| 竹山县| 中宁县| 肃南| 和顺县| 驻马店市| 盐边县| 元阳县| 乌兰县|