当前位置:  技术问答>java相关

急救:JB6中帮助中setSessionContext的这段程序是什么意思?谢谢!

    来源: 互联网  发布时间:2015-05-15

    本文导语:  Writing the setSessionContext() method In the session bean's sessionContext() method add a try block. Modify the method so that it looks like this:   public void setSessionContext(SessionContext sessionContext)      throws RemoteException {     t...

Writing the setSessionContext() method In the session bean's sessionContext() method add a try block. Modify the method so that it looks like this:   public void setSessionContext(SessionContext sessionContext) 
    throws RemoteException {
    this.sessionContext = sessionContext;
    try {
      Context context = new InitialContext();
      Object object = context.lookup("java:comp/env/ejb/Employee");
      employeeHome = (EmployeeHome) PortableRemoteObject.narrow(object,
     EmployeeHome.class);
      entityBeanProvider.setEjbHome(employeeHome);
      entityBeanResolver.setEjbHome(employeeHome);
    }
    catch (Exception ex) {
      throw new EJBException(ex);
    }
  }
 Note that setSessionContext() sets the value of the ejbHome properties in the EntityBeanProvider and EntityBeanResolver components to the name of the home interface of the Employee entity bean。
现在是这样的,我生成了一个stateless session bean叫BGSessionBean,一个entity bean叫BGEntityBean,我想通过session bean来访问entity bean,因此在server-side加入了entityBeanProvider,entityBeanResolver。帮助说需要在setSessionContext中加入异常处理,我对这个异常处理程序不大清楚。譬如java:comp/env/ejb/Employee是什么意思?employeeHome = (EmployeeHome) PortableRemoteObject.narrow(object,EmployeeHome.class);起什么作用呢?employeeHome是谁的home interface?
EmployeeHome又是谁的home interface?

|
你的问题每次咋都这么字 :)
java:comp/env/ejb/Employee是你的BEAN的JNDI名
CLIENT通过它来早到BEAN,如果你用的是WL和JB6,并DEPLY成功了
你只需要写:Employee就可以了,前面不需要

你把你的ENTITYBENA的JAR放到WL的启动CLASSPATH中,这样就可以被CLIEN调用到了

|
1、异常处理就是try{}catch(){},你问什么?它这里throw了EJBException,说明有异常发生会终止EJB的运行。

2、lookup()方法根据JNDI名寻找对象,这里的java:comp/env是J2EE的默认名字空间,然后你在配置时设置了ejb/Employee的JNDI名字,它会根据这个名字寻找对象。

3、narrow()方法就是“强制类型转换”的意思。把object转成EmployeeHome对象类型。

4、employeeHome是对象名,是EmployeeHome类的一个实例。而EmployeeHome是类的名字。

|
java:comp/env/ejb/Employee是ejb引用名称,你需要在ejb-jar.xml中声明ejb/Employee这个ejb引用,在发布时,你还要指定ejb/Employee对应的ejb的jndi.  
由于ejb是基于rmi-iiop的分布式组件,employeeHome = (EmployeeHome) PortableRemoteObject.narrow(object,EmployeeHome.class);中narrow检查远程对象object是否实现远程接口,然后可以安全的进行转换
lookup查找ejb时实际上返回该ejb的home接口,然后通过home接口得到ejb的remote接口


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 在线高分急救,急救,急救,急救,急救,急救!!!!!!!!!!
  • 急救,急救!(近来看看吧)
  • qmail奇怪的问题,急救啊 SOS!
  • linux 进入单用户或急救模式
  • 新手 用Linux搞的XP的D盘找不到了 急救
  • 各位兄弟,急救我是初学者,关于JBULID的问题?
  • 用jsp那个函数可以得到用户的IP地址,急救。谢谢!!!!!
  • 急救,请问如何得到jTree中被选中节点的父节点的path或者row?
  • 急救!怎样实现在线人数统计!!!
  • 各位高手,急救啊!!!!!
  • 急救!帮助
  • 急救,欢迎各位LINUX高手(火速)
  • 急救!!!简单的HELLOWORLD程序,编译痛不过
  • 急救!~!~!那位高手知道怎么安Realtek RTL8139网卡吗?
  • 急救!!——忘记了linux登陆密码,有办法进去吗?
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 各位大虾,急教,急救!
  • 急救!删除了linux,进不了2k了。。
  • 急救
  • 急救!分数不是问题,就是要快!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3