CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2EE / EJB / JMS

请教:动态进行ejb调用的问题

楼主hangzhoufeihu(飞狐)2003-11-04 10:51:15 在 Java / J2EE / EJB / JMS 提问

是这样的我现在只知道这个ejb接口的名字(是字符串类型的)我该如何进行调用他的方法呢?  
  //testEJB.java  
  import   javax.ejb.EJBObject;  
  import   java.rmi.RemoteException;  
   
  public   interface   testEJB   extends   EJBObject    
  {  
      String   add(String   str)   throws   RemoteException;  
  }  
   
  //testEJBHome.javaimport   javax.ejb.EJBHome;  
  import   java.rmi.RemoteException;  
  import   javax.ejb.CreateException;  
   
  public   interface   testEJBHome   extends   EJBHome    
  {  
      testEJB   create()   throws   RemoteException,   CreateException;  
  }  
   
  //testEJBBean.java  
   
  import   javax.ejb.SessionBean;  
  import   javax.ejb.SessionContext;  
   
  public   class   testEJBBean   implements   SessionBean    
  {  
      public   void   ejbCreate()  
      {  
      }  
   
      public   void   ejbActivate()  
      {  
      }  
   
      public   void   ejbPassivate()  
      {  
      }  
   
      public   void   ejbRemove()  
      {  
      }  
   
      public   void   setSessionContext(SessionContext   ctx)  
      {  
      }  
   
      public   String   add(String   str)  
      {  
          System.out.println(str);  
          return   str;  
      }  
  }  
   
  现在我通过我的配置文件知道  
  String   ejbhome="testEJBHome";  
  String   ejb="testEJB";  
  我不知道具体ejb的home接口类,只知道字符串表示的类标识  
  我怎样才能对该ejb进行比如说add方法的调用呢?  
  Object   obj   =   context.lookup(“jndiName”);        
  如下该怎么进行下塑造型呢?      
  (homeInterface)PortableRemoteObject.narrow(obj,   homeInterfaceClass);  
  以及create        
   
  谢谢  
  在线等  
   
   
  问题点数:50、回复次数:13Top

1 楼hangzhoufeihu(飞狐)回复于 2003-11-04 11:19:03 得分 0

help   me   please  
  Top

2 楼hangzhoufeihu(飞狐)回复于 2003-11-04 12:27:09 得分 0

没人会吗  
  Top

3 楼hangzhoufeihu(飞狐)回复于 2003-11-04 12:27:16 得分 0

没人会吗Top

4 楼wkrain(戈壁一沙鸥)回复于 2003-11-04 16:33:47 得分 1

如果配置名和类名一致是可以的。  
   
  public   EJBHome   getEJBHome(String   jndiName,   String   className)  
   
  EJBHome   ejbHome   =   null;  
  javax.naming.InitialContext   ictx   =   new   javax.naming.InitialContext();  
  Object   jndiRef   =   ictx.lookup(jndiName);  
  ejbHome   =   (EJBHome)   PortableRemoteObject.narrow(jndiRef,  
                          Class.forName(className));  
   
   
  Top

5 楼hangzhoufeihu(飞狐)回复于 2003-11-04 16:49:27 得分 0

这样是拿到一个EJBHome接口吧,怎么造型成自己的ejbHome接口呢  
  直接这个接口是不可以create的吧Top

6 楼whyxx(最近有点闲)回复于 2003-11-04 17:29:56 得分 1

直接用  
  EJBHome   xxx   =   (EJBHome)   PortableRemoteObject.narrow(obj,   homeInterfaceClass);  
  xxx.create();  
  这样是可以的,这就是接口编程Top

7 楼hangzhoufeihu(飞狐)回复于 2003-11-04 18:02:22 得分 0

to   whyxx(越来越觉得自己什么都不会)    
  兄弟这样  
  好象不行呢,不可以的吧  
  method   create   not   found   in   interface   javax.ejb.EJBHomeTop

8 楼hangzhoufeihu(飞狐)回复于 2003-11-04 18:10:49 得分 0

我的意思是说,我只知道这个ejb的jndi调用名字,以及这个ejb中的方法,比如说add()  
  那我怎么自动造型成那个ejbHome并进行业务方法的调用Top

9 楼hangzhoufeihu(飞狐)回复于 2003-11-04 19:12:25 得分 0

upup  
  up  
  up  
  upTop

10 楼qqyb2000(答案)回复于 2003-11-04 19:26:07 得分 48

把所有的方法和EJB名都写到一个二维数组里去。然后查找数组中的方法,确定EJB!Top

11 楼hangzhoufeihu(飞狐)回复于 2003-11-04 19:47:18 得分 0

是这样的  
  比如说我知道  
  interface   interfaceA{}  
  class   CLASSB   implements   interfaceA  
  {  
  add();  
  }  
  我只知道  
  String   aa="CLASSB";  
  我想调用  
  add()方法  
   
   
  Top

12 楼hangzhoufeihu(飞狐)回复于 2003-11-08 19:56:00 得分 0

upTop

13 楼hangzhoufeihu(飞狐)回复于 2003-11-08 19:56:22 得分 0

upupupupuupupupppppppppppppppppppppppppppppppppppppppppppppppppppppp  
   
  ppp  
   
   
   
  p  
  p  
  p  
  p  
  p  
   
  pp  
   
  p  
  p  
  pp  
   
  p  
  p  
  p  
  p  
  p  
  p  
  pp  
  Top

相关问题

  • DLL动态调用!
  • Delphi7 调用Ejb
  • 怎样调用DLL啊?(动态调用)
  • 调用动态连接库
  • 调用动态链接库
  • 如何调用动态库?
  • 动态调用图片!
  • 动态库调用问题
  • 动态函数调用
  • 如何动态调用DLL?

关键词

  • 接口
  • ejb
  • ejbhome
  • 调用
  • testejb
  • testejbhome
  • javaimport
  • jndiname
  • portableremoteobject
  • remoteexception

得分解答快速导航

  • 帖主:hangzhoufeihu
  • wkrain
  • whyxx
  • qqyb2000

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo