我有一个符合ejb-3标准的ejb,例如
@Remote
interface Hai{
String sayHai();
}
Stateless(name = "xxx", mappedname="yyy")
public class HaiImpl implements Hai{
public String sayHai(){
return "Hai";
}
}
我需要为这个EJB生成存根(stub),但是我不想使用WebSphere工具或Maven工具。有没有办法使用JDK来生成存根?
当您创建远程客户端时
Hai hai = (Hai)ctx.lookup("yyy#com.zz.Hai");
System.out.println(hai.sayHai());
这段代码在Weblogic或Jboss中可以工作,但是在WebSphere中,即使是EJB 3,你也需要像这样编写:
Object o = ctx.lookup("yyy");
Hai hai = (Hai)javax.rmi.PortableRemoteObject.narrow(o,Hai.class);
System.out.println(hai.sayHai());
在这种情况下,如果客户端不存在存根,则会抛出异常。有一种方法可以使用WebSphere EJB存根生成器工具生成存根。但我不想使用任何特定于平台的工具。