websphere ejb远程/本地调用总结
2010-09-27 08:17:41 来源:WEB开发网public void invoke()
...{
MapSessionLocalHome mapSessionLocalHome = null;
MapSessionLocal mapSessionLocal = null;
InitialContext initContext = null;
final String JNDIName = "java:comp/env/ejb/MapSession";
try ...{
System.out.println("in invoke()!!!!!!!");
initContext = new InitialContext();
Object obj = initContext.lookup(JNDIName);
mapSessionLocalHome = (MapSessionLocalHome)obj;
mapSessionLocal = mapSessionLocalHome.create();
Person person = new Person("lcl",555);
mapSessionLocal.setMapValue("key1", person);
Person tempPerson = (Person)mapSessionLocal.getMapValue("key1");
tempPerson.setName("wangwu");
tempPerson .setAge(88);
Person changedPerson = (Person)mapSessionLocal.getMapValue("key1");
System.out.println("after changed: " + changedPerson.getName() + "---" + changedPerson.getAge());
}
catch(Exception e)
...{
e.printStackTrace();
}
}
值得一提的是,在本地调用中,对一个object的操作,是在同一内存块中进行的。具体到上面的代码,tempPerson的改变,已经影响到了changedPerson的值。
2:远程方法调用:
前提:被调用者实现了REMOTE接口,适用于不在同一模块中的ejb,servlet.
public static void main(String[] args)
...{
MapSessionHome mapSessionHome = null;
MapSession mapSession = null;
InitialContext initContext = null;
final String JNDIName = "ejb/co/test/bean/MapSessionHome";
try ...{
System.out.println("in MapSessionClient!!!!!!!");
initContext = new InitialContext();
Object obj = initContext.lookup(JNDIName);
mapSessionHome =
(MapSessionHome) PortableRemoteObject.narrow(
obj,
MapSessionHome.class);
mapSession = mapSessionHome.create();
Person person1 = new Person("zhangsan", 100);
mapSession.setMapValue("key1",person1);
Person tempPerson = (Person)mapSession.getMapValue("key1");
tempPerson.setName("lisi");
tempPerson.setAge(500);
System.out.println("before changed: " + tempPerson.getName() + "---" + tempPerson.getAge());
Person changedPerson = (Person)mapSession.getMapValue("key1");
System.out.println("after changed: " + changedPerson.getName() + "---" + changedPerson.getAge());
} catch (Exception e) ...{
e.printStackTrace();
System.exit(0);
}
}
值得一提的是,在远程调用中,对一个object的操作,经过了corba处理,是不在同一内存块中进行的。具体到上面的代码,tempPerson的改变,不影响changedPerson的值(其实理所当然,一个是远程的对象,你个是本地内存对象)。
编缉推荐阅读以下文章
- 使用 WebSphere Process Server 修复流程
- 设置并置 WebSphere Application Server 负载均衡器和内容主机
- 利用 WebSphere Application Server 6.1 构建 SIP 集群应用环境及其性能调优
- WebSphere Process Server V6.0.2 集群,第 1 部分:了解拓扑
- 如何实现WebSphere Application Server 6集群环境下的定时服务
- 迁移集群环境中的 WebSphere Commerce
- WebSphere Process Server V6.0.2 集群,第 2 部分:安装和配置 WebSphere Process Server 集群
- Websphere MQ v6集群的负载均衡新功能
- 将 JUnit 插件集成到 WebSphere Studio 中
- 使用 IBM WebSphere MQ JMS 提供程序
- ››WebSphere Application Server 7.0 XML Feature P...
- ››远程共享广播PPT演示幻灯片的方法
- ››WebSphere 反向投资者: 解决 WebSphere Applicati...
- ››WebSphere sMash 的创新应用,第 2 部分: 借助包装...
- ››Websphere MQ v6集群的负载均衡新功能
- ››WebSphere Process Server V6.0.2 集群,第 2 部分...
- ››WebSphere Process Server V6.0.2 集群,第 1 部分...
- ››WebSphere MQ性能调优浅谈
- ››WebSphere配置资源库管理
- ››WebSphere中的SSL/TLS:用法、配置和性能
- ››websphere ejb远程/本地调用总结
- ››WebSphere Application Server对SIP的支持
更多精彩
赞助商链接