熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java開源技術 >> 正文

Eclipse + JBoss 5 + EJB3

2013-11-23 20:32:34  來源: Java開源技術 

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

  先建立一個session bean本地接口代碼如下

   package service;

import javautilList;
import javaxejbLocal;

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

  關於Session Bean的具體實現類與遠程接口的實現類一樣讀者可以參考《編寫有狀態的SessionBean》一文中的ShoppingCartBean類

  下面在Eclipse中新建立一個Web工程(工程名JBossWeb)該工程需要引用MyEJB工程(包含EJB組件的工程)在WebContent目錄中建立一個testjsp頁面代碼如下

   <%@ page language=java contentType=text/html; charset=GB
    pageEncoding=GB import=javautilListjavautilProperties
                      javaxnamingInitialContextserviceShoppingCart%>
<!DOCTYPE html PUBLIC //WC//DTD HTML  Transitional//EN >
<html>
<head>
<meta httpequiv=ContentType content=text/html; charset=GB>
<title>Insert title here</title>
</head>
<body>

</body> remote
<%
    Properties prop = new Properties();
    InitialContext ctx = new InitialContext();        
    ShoppingCart shoppingCart = (ShoppingCart) ctx
        lookup(ShoppingCartBean/local);
    shoppingCartaddCommodity(自行車);
    shoppingCartaddCommodity(筆記本電腦);
    shoppingCartaddCommodity(液晶電視);
    List<String> commodities = shoppingCartgetCommodity();
    for(String commodity: commodities)
    {
        Systemoutprintln(commodity);
    } 
%>
</html>

  訪問本地接口要使用的jndi name應為ShoppingCartBean/local

  啟動JBoss在浏覽器中輸入如下的URL

  在Eclipse的Console中會輸出如下的信息

   :: INFO  [STDOUT] 自行車
:: INFO  [STDOUT] 筆記本電腦
:: INFO  [STDOUT] 液晶電視


From:http://tw.wingwit.com/Article/program/Java/ky/201311/28645.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.