本文为原创,如需转载,请注明作者和出处,谢谢!
上一篇:
eclipse + JBoss 5 + EJB3开发指南(1):编写第一个无状态的SessionBean
编写有状态的(Stateful)的Session Bean也非常简单,只需要将无状态注释(@Stateless)改成有状态注释(@Stateful)即可。如果使用Stateful Sessionbean,客户端在使用同一个SessionBean对象实例时可以保存状态,也就是说,在多次引用该对象时实际上在服务端是使用的同一个Sessionbean的对象实例,而无状态sessionbean使用了不同的sessionbean对象实例,因此,是无法保存状态的。
下面将编写一个简单的购物车的例子,该例子将客户购买的商品都保存在stateful sessionbean中的List对象中。然后在客户端使用同一个sessionbean的对象实例输出这些商品。我们首先来实现一个sessionbean的远程接口,这和无状态sessionbean是一样的。代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageservice;
importjava.util.List;
importjavax.ejb.Remote;
@Remote
publicinterfaceShoppingCart
{
//添加某个商品信息
publicvoidaddCommodity(Stringvalue);
//获得客户购买的所有商品的纱衔泥
publicList<String>getCommodity();
}
为了方便,在这里只将商品名保存在List对象中,读者也可以在List对象中保存更复杂的信息,如使用一个对象来保存商品信息。
下面来编写具体的Stateful sessionbean,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packageservice;
importjava.util.ArrayList;
importjava.util.List;
importjavax.ejb.Stateful;
@Stateful
publicclassShoppingCartBeanimplementsShoppingCart
{
privateList<String>shoppingCart=newArrayList<String>();
@Override
publicvoidaddCommodity(Stringvalue)
{
shoppingCart.add(value);
}
@Override
publicList<String>getCommodity()
{
returnshoppingCart;
}
}
最后我们编写一个客户端调用程序,代码如下:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->packagetest;
importjava.util.List;
importjava.util.Properties;
importjavax.naming.InitialContext;
importservice.ShoppingCart;
publicclassClient
{
publicstaticvoidmain(String[]args)throwsException
{
Propertiesprop=newProperties();
InitialContextctx=newInitialContext();
ShoppingCartshoppingCart=(ShoppingCart)ctx
.lookup("ShoppingCartBean/remote");
shoppingCart.addCommodity("自行车");
shoppingCart.addCommodity("笔记本电脑");
shoppingCart.addCommodity("液晶电视");
List<String>commodities=shoppingCart.getCommodity();
for(Stringcommodity:commodities)
{
System.out.println(commodity);
}
}
}
在客户端调用时,需要将ShoppingCart接口复制到客户端,当然,@Remote可以去掉。别忘了引用JBoss安装目录中的client目录中的jar文件。客户端仍然使用了jndi.properties文件来配置相应的信息,该文件位于src目录下,内容如下;
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost
在执行上面的程序后,将输出如下的信息:
<!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->自行车
笔记本电脑
液晶电视
从上面的输出结果可以看出,使用getCommodity方法成功获得了所有的商品信息。要注意的是,需要使用同一个sessionbean对象实例(shoppingCart)才能保存状态。如果在web应用程序中,需要将shoppingCart对象保存在Session中,这样在同一个会话中的用户就可以使用该购物车对象了。
下一篇:eclipse + JBoss 5 + EJB3开发指南(3):使用Session Bean的本地接口
国内最棒的Google Android技术社区(eoeandroid),欢迎访问!《银河系列原创教程》发布《Java Web开发速学宝典》出版,欢迎定购
分享到:
相关推荐
使用Eclipse+Jboss+MySql开发EJB
(2):编写有状态的SessionBean 7 (3):使用Session Bean的本地接口 9 (4):Session Bean中的注释方法 11 (5):使用配置文件发布Session Bean 12 (6):JBOSS中测试中的常用错误 13 (7):JBoss只能本地...
eclipse + JBoss 5 + EJB3开发指南(转载整理)
eclipse + JBoss 5 + EJB3开发指南中的代码 下载PDF文档资料后可以和本资料一起学习
非常好的指导Eclipse下通过JBOSS开发EJB的入门指导书, 通过原作者的实际使用总结得到,简洁易懂。
Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置Eclipse+jboss的配置
使用eclipse通过jboss开发简单的ejb应用(jboss7.x & ejb3.x),包含server和client。
Eclipse+JBoss+MySQL开发环境设置.pdf
手把手系列-Eclipse+JBossIDE+JBoss开发环境配置
ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt ejb+jboss+eclipse.txt
经典JAVA EE企业应用实战基于WEBLOGIC JBOSS的JSF+EJB 3+JPA整合开发——源码.part1 其他部分详见我的上传列表,全部分卷下载完成才能解压。 本书介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun...
yeclipse7.0+JBoss5.0测试EJB3.0环境搭建过程详解
广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。
EJB3+JBOSS5+JPA整合,里面还用到了ejb3注解。
《经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发》介绍了Java EE规范的三大主要规范JSF、EJB 3和JPA,其中JSF是Sun公司提供的JSF RI;EJB 3部分则包含Session Bean、Message Driven Bean的...
EJB3.0第五版电子书,开发环境是eclipse+jboss+mysql
myEclipse+Jboss+mysql+EJB
Jboss7.1.1+eclipse-kepler开发ejb3 使用eclipse4.3即kepler版本来集成jboss tools工具并使用jboss7.1.1来开发ejb3.1
ejb课程测试代码,eclipse+jboss5.1 ant编译等代码 三个测试项目请下载
经典Java EE企业应用实战:基于WebLogic/JBoss的JSF+EJB 3+JPA整合开发 part3