请教:动态进行ejb调用的问题
是这样的我现在只知道这个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




