无法remote访问WAS 7中部署的EJB3。_Remote_Stub incompatible

环境:
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类吗?
参与6

5同行回答

shileishilei开发工程师ibm
非常感谢 blueheart。显示全部
非常感谢 blueheart。收起
轨道交通 · 2011-04-18
浏览672
shileishilei开发工程师ibm
期待更详细的解答,简单的回答用处不大,谢谢。显示全部
期待更详细的解答,简单的回答用处不大,谢谢。收起
轨道交通 · 2011-04-15
浏览694
shileishilei开发工程师ibm
谢谢楼上的回答。就是说所有的REMOTE访问都要执行createEJBStubs命令吗?我见别人也没这么操作。如果要这样的话,EJB的简化何在?我现在在做WAS集群,有多NODE ,比如NODE1的WEB要访问NODE2的EJB,这两个NODE不在同一个SERVER ,但这些NODE 做的集群,还需要执行createEJBStubs命令?...显示全部
谢谢楼上的回答。

就是说所有的REMOTE访问都要执行createEJBStubs命令吗?我见别人也没这么操作。如果要这样的话,EJB的简化何在?

我现在在做WAS集群,有多NODE ,比如NODE1的WEB要访问NODE2的EJB,这两个NODE不在同一个SERVER ,但这些NODE 做的集群,还需要执行createEJBStubs命令?收起
轨道交通 · 2011-04-15
浏览703
le0911le0911技术经理农信银资金清算中心
客户端跨JVM必须要同一个JVM就不需要显示全部
客户端跨JVM必须要
同一个JVM就不需要收起
银行 · 2011-04-15
浏览742
blueheartblueheart技术经理浙江兰德纵横网络技术有限公司
对Was EJB的远程调用这个步骤是必须的。你可以使用ant工具进行批量生成。显示全部
对Was EJB的远程调用这个步骤是必须的。你可以使用ant工具进行批量生成。收起
互联网服务 · 2011-04-15
浏览712

提问者

shilei
开发工程师ibm

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2011-04-15
  • 关注会员:1 人
  • 问题浏览:4594
  • 最近回答:2011-04-18
  • X社区推广