【问题标题】:WebLogic ClassCastException during RMIRMI 期间的 WebLogic ClassCastException
【发布时间】:2015-01-22 21:19:54
【问题描述】:

所以我设置了两个远程 WebLogic 应用程序来使用 RMI 相互通信。

LocalServiceAPI.java 文件位于客户端和主机的同一包中。

相同的代码可以在我的本地机器上的测试服务器上运行,但不能在我公司的 unix 服务器上运行。

两个服务器版本都是 12.1.3.0.0

最奇怪的是:narrow 成功了,但是演员抛出了 classCastException。

    Hashtable<String,String> env = new Hashtable<String,String>();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    env.put(Context.PROVIDER_URL, "t3://" + address + ":" + port);

    Object obj = PortableRemoteObject.narrow(new InitialContext(env).lookup("LocalServiceAPI"), LocalServiceAPI.class);
    return (LocalServiceAPI) obj;

例外:

java.lang.ClassCastException: com.cleargoals.service.LocalServiceAPIImpl_12130_WLStub cannot be cast to com.cleargoals.service.LocalServiceAPI

【问题讨论】:

标签: weblogic rmi downcast


【解决方案1】:

由于您的服务器版本是 12.1.3。所以我假设它是符合 EJB3 的服务器。对于 EJb3,context.lookup 方法调用假定传递的参数是远程类的全局 JDNI 名称...所以请确保您在查找调用中传递远程类的全局 JNDI 名称...如果您不确定是什么意思,请阅读link通过 JNDI 名称中的全局词...其次,由于 EJB2,您不需要使用 PortableRemoteObject.narrow 方法,查找调用本身为您完成工作...它的解释也在同一个链接中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2016-03-14
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多