您的位置:首页 > 编程语言 > Java开发

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

2009-05-14 17:16 639 查看
本文为原创,如需转载,请注明作者和出处,谢谢!



上一篇: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中的注释方法

国内最棒的Google Android技术社区(eoeandroid),欢迎访问!

《银河系列原创教程》发布

《Java Web开发速学宝典》出版,欢迎定购
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐