- 浏览: 691996 次
- 性别:
- 来自: 北京
博客专栏
-
读金庸故事,品程序人生
浏览量:47255
文章分类
最新评论
-
hty881008:
LZ,你的json返回是怎么出来的,我的怎么是No messa ...
使用CXF暴露您的REST服务 -
jxFY:
赞
Apache的对象池化工具commons-pool -
wangyudong:
新版本的Wisdom RESTClient地址https:// ...
使用CXF暴露您的REST服务 -
wangyudong:
由CXF实现的微服务需要有比较好的工具去测试RESTful A ...
使用CXF暴露您的REST服务 -
spring_springdata:
可以参考最新的文档:如何在eclipse jee中检出项目并转 ...
Maven3实战笔记01环境配置与使用入门
以上好像还看不出什么,那么咱们开发一个web程序作为测试用例
建立一个web项目,将jboss的client文件夹下面所有的jar包都拷贝进此web项目中。
Index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head></head> <body> <form name="form1" method="post" action="buy.jsp"> <label> <input type="checkbox" name="items" value="suhuanzhen"> 素还真 </label> <label> <input type="checkbox" name="items" value="yexiaochai"> 叶小钗 </label> <label> <input type="checkbox" name="items" value="heibailangjun"> 黑白郎君 </label> <br> <label> <input type="submit" name="Submit" value="提交"> </label> </form>
</body> </html> |
Buy.jsp
<%@ page language="java" import="java.util.*,javax.naming.*,ejb.sessionBean.*" pageEncoding="utf-8"%> <% ShopService shopService = (ShopService) session .getAttribute("ShopService");
if (shopService == null) {
Context context = null;
String init_factory = "org.jnp.interfaces.NamingContextFactory"; String serverURL = "jnp://127.0.0.1:1099";
Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, init_factory);
properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
properties.put(Context.PROVIDER_URL, serverURL);
context = new InitialContext(properties);
shopService = (ShopService) context .lookup("ShopServiceEAOImpl/remote");
session.setAttribute("ShopService", shopService);
}
String[] items = request.getParameterValues("items");
for (String itme : items) { shopService.addItem(itme); }
System.out.println(shopService.showItems()); %> <a href="index.jsp">[重新选购]</a> | <a href="removeBean.jsp">[销毁EJB回话Bean]</a> |
removeBean.jsp
<%@ page language="java" import="java.util.*,javax.naming.*,ejb.sessionBean.*" pageEncoding="utf-8"%> <% ShopService shopService = (ShopService) session .getAttribute("ShopService");
if (shopService == null) {
Context context = null;
String init_factory = "org.jnp.interfaces.NamingContextFactory"; String serverURL = "jnp://127.0.0.1:1099";
Properties properties = new Properties(); properties.put(Context.INITIAL_CONTEXT_FACTORY, init_factory);
properties.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
properties.put(Context.PROVIDER_URL, serverURL);
context = new InitialContext(properties);
shopService = (ShopService) context .lookup("ShopServiceEAOImpl/remote");
session.setAttribute("ShopService", shopService);
} shopService.removeForClient(); session.removeAttribute("ShopService"); %> <a href="index.jsp">[重新选购]</a> |
Index.jsp是选购人物页面,buy.jsp是调用业务处理逻辑,removeBean是显示的让服务器销毁会话Bean对象。将此项目发布到tomcat中运行,效果如下
选中“素还真”提交
客户端控制台如下
{suhuanzhen=1} |
之后在选择素还真、黑白郎君
控制台如下
{suhuanzhen=2, heibailangjun=1} |
之后在选择素还真、叶小钗、黑白郎君
控制台如下
{suhuanzhen=3, yexiaochai=1, heibailangjun=2} |
我们再看看服务端的控制台,以上3个操作造成了控制台信息如下
11:54:20,279 INFO [STDOUT] 有状态SessionBean:ShopServiceEAOImpl构造完毕 11:54:20,791 INFO [STDOUT] buyInfo:{suhuanzhen=1} 11:55:27,100 INFO [STDOUT] buyInfo:{suhuanzhen=2, heibailangjun=1} 11:56:07,511 INFO [STDOUT] buyInfo:{suhuanzhen=3, yexiaochai=1, heibailangjun=2} |
之后让另一台计算机或者另一个浏览器——火狐访问你这个tomcat的web应用,重新选择素还真控制台“累计”信息如下
{suhuanzhen=1} {suhuanzhen=2, heibailangjun=1} {suhuanzhen=3, yexiaochai=1, heibailangjun=2} {suhuanzhen=1} |
之后本机再次重新选择素还真,控制台信息如下
{suhuanzhen=1} {suhuanzhen=2, heibailangjun=1} {suhuanzhen=3, yexiaochai=1, heibailangjun=2} {suhuanzhen=1} {suhuanzhen=4, yexiaochai=1, heibailangjun=2} |
由此观之,就像HttpSession一样,有状态的SessionBean各自维护自己客户端的实例的变量状态。不同的客户端,sessionBean的实例变量不会互相干扰,各干各的。当然,如果调用了远程方法,销毁了有状态的会话Bean的时候也要将您httpSession中的会话对象删除掉,这样才能够让远程SessionBean重新创建对象和实例变量啊。
发表评论
-
JavaEE5实战笔记05RedHat搭建JBoss、Oracle10g环境
2011-06-01 10:50 1524JavaEE5实战笔记在RedHat上搭建JBoss、Orac ... -
JavaEE5实战笔记02JPA持久层的一些问题
2011-05-30 14:48 15601. JPA关联实体的级联操作问题 在此次联系中 ... -
JavaEE5实战笔记01EJB环境搭建及异常解决
2011-05-30 14:43 49461. 说明 此实战笔记是为了之前的学习笔记做一个 ... -
Spring集成ActiveMQ配置
2011-03-21 20:58 278841. 集成环境 Spring采用2.5.6版本, ... -
JAVA的Mina框架传递对象——一劳永逸(转载)
2011-03-09 11:31 2615接触java的Mina框架已经有很多时间了,在网上也读过了很多 ... -
JavaEE5学习笔记12-JSF验证器使用总结
2011-03-09 00:01 19361. JSF验证器 说完转换器就该说说验证器了, ... -
JavaEE5学习笔记11-JSF转换器使用总结
2011-03-08 23:53 26771. JSF的转换器是在JSF生命周期的第2个阶段 ... -
JSF组件生命周期的讨论
2011-03-08 23:38 16981. JSF生命周期 下面我们来看看JSF组件的 ... -
JavaEE5学习笔记10-JSF基本UI控件使用
2011-03-08 23:34 36031. JSF也是JavaEE5的标准,感觉上sun ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(2)
2011-02-28 09:21 1523以上例子只是简单调用了WebService,参数是简单的Str ... -
JavaEE5学习笔记09-将EJB发布成WebService总结(1)
2011-02-28 09:19 40751. 将EJB发布成,或者说暴露成Web服务(也许 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(4)
2011-02-24 09:36 14631. 在JavaEE容器 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(3)
2011-02-24 09:35 11681. 测试代码 部署成功后,在另一个项目中建立测 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(2)
2011-02-24 09:33 1485下面来看针对此实体操作的sessionBean代码。 接口 ... -
JavaEE5学习笔记08-JPA与EJB集成总结(1)
2011-02-24 09:28 1719JPA是JavaEE5提出的一套标准接口,不同的应用服务器对其 ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----2
2011-02-21 15:56 1383除了activationConfig之外,如果使用其他Java ... -
JavaEE5学习笔记06-EJB之消息驱动Bean(MDB)总结----1
2011-02-21 15:55 19281. 功能介绍 在EJB的分类中还有一个就是消息驱 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----7
2011-02-21 09:49 12971. EJB的容器式依 ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----6
2011-02-21 09:48 1467BMT就是Bean自己管理事务,这种方式就是以硬编码的方式在B ... -
JavaEE5学习笔记05-EJB之会话Bean(sessionBean)总结-----5
2011-02-21 09:46 18571. 有状态的会话Bean的本地、远程调用 其实这 ...
相关推荐
JavaEE5学习笔记05-EJB之会话Bean总结...
EJB之消息驱动Bean的总结。ejb 消息驱动Bean j2ee jms java
JavaEE5学习笔记07-Web层与EJB集成总结。
JavaEE5学习笔记09-将EJB发布成WebService总结。
JavaEE5学习笔记02-JNDI与RMI,
JavaEE5学习笔记04-JavaMail使用总结----
JavaEE5学习笔记01-JTA和数据库事务.
JavaEE5学习笔记12-JSF集成AJAX使用经验总结。
JavaEE5学习笔记03-JMS介绍与使用..
JavaEE5学习笔记13-JSF集成Facelets使用经验总结.
JavaEE5学习笔记11-JSF转换器验证器使用经验总结。
NULL 博文链接:https://suhuanzheng7784877.iteye.com/blog/909104
JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源代码 struts2-core-2.0.11JavaEE源...
javaee-api-8.0-javadoc.jar,这是javaee1.8api的jar包,解压后可用javadoc2chm制作成chm帮助文档。
JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-2.0.11JavaEE源代码 struts2-spring-plugin-...
java javaee-api-6.0-5
JPA学习笔记-EJB-06JPA+Spring使用经验。
先电云计算软件服务-云存储网盘JavaEE网络应用开发手册-Cloud-SaaS-Web-v2.0先电云计算软件服务-云存储网盘JavaEE网络应用开发手册-Cloud-SaaS-Web-v2.0先电云计算软件服务-云存储网盘JavaEE网络应用开发手册-Cloud-...
JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-beta-7JavaEE源代码 jaxen-1.1-...