环境:
WID生成 EJB3. 部署在WAS7中。
客户端程序:
Properties props = new Properties();
props.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY,
"com.ibm.websphere.naming.WsnInitialContextFactory");
props.setProperty(InitialContext.PROVIDER_URL,
"iiop://9.123.108.39:2809/");
InitialContext ic;
try {
ic = new InitialContext(props);
TestSessionBeanRemote bean = (TestSessionBeanRemote)ic.lookup("ejb/sessionbean");
String hello = bean.sayHello();
System.out.println(hello);
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Exception :
java.lang.ClassCastException: org.omg.stub.java.rmi._Remote_Stub incompatible with com.ibm.sessionBean.TestSessionBeanRemote.通过createEJBStubs 命令创建出了stub类,放入client classpath就不报错了,可以顺利通过sessionbean取出返回值.
为什么会出现这种情况,难道 要对每个EJB.ear都要 执行createEJBStubs 命令吗? EJB3不是大大简化开发工作了吗? 这样岂不是很麻烦。
在 EJB3.0 client.jar中应该包含stub类吗?
收起