从Weblogic 9调用Weblogic 12中部署的远程EJB时出错

时间:2014-09-25 16:58:32

标签: java ejb rmi weblogic12c weblogic9.x

我有一个基于EJB 2.1的应用程序,部署在Weblogic 9.2(Java 5)中,调用部署在Weblogic 12(Java 7)中的远程EJB 3。我已将wlfullclient.jar添加到类路径中,并抛出以下异常:

Caused by: java.lang.NoSuchMethodError: weblogic.kernel.KernelStatus.isThinIIOPClient()Z
    at weblogic.ejb.container.internal.RemoteBusinessIntfProxy.readObject(RemoteBusinessIntfProxy.java:185)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:946)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1809)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:195)
    at weblogic.rjvm.MsgAbbrevInputStream.readObject(MsgAbbrevInputStream.java:565)
    at weblogic.utils.io.ChunkedObjectInputStream.readObject(ChunkedObjectInputStream.java:191)
    at weblogic.rmi.internal.ObjectIO.readObject(ObjectIO.java:62)
    at weblogic.rjvm.ResponseImpl.unmarshalReturn(ResponseImpl.java:221)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:338)
    at weblogic.rmi.cluster.ClusterableRemoteRef.invoke(ClusterableRemoteRef.java:252)
    at weblogic.jndi.internal.ServerNamingNode_923_WLStub.lookup(Unknown Source)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:379)
    at weblogic.jndi.internal.WLContextImpl.lookup(WLContextImpl.java:367)
    at javax.naming.InitialContext.lookup(InitialContext.java:351)
weblogic.kernel.KernelStatus中存在

wlfullclient.jar并且它具有isThinIIOPClient方法,但该类也存在于weblogic.jar中,并且它没有该方法。 我尝试使用wlthint3client.jar并遇到了同样的错误。

有人可以帮我解决一下如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

我认为这个问题可以通过在2个或更多的jar中删除相同的类,或者将错误的wlfullclient.jar放入项目中来解决。您应该尝试从库中删除该jar。

Pierluigi Vernetto

的评论解决了这个问题

" weblogic.kernel.KernelStatus包含在许多JAR文件中,例如$ MIDDLEWARE_HOME / modules / com.bea.core.weblogic.workmanager_1.9.0.0.jar,wlclient.jar等。

最有可能在你的类路径中你选错了

把好的罐子组合在一起是一件令人沮丧的事情......不要放弃......并且记住,正式无法对给定的JAR进行扫描的顺序进行排序上课,所以如果你在2个罐子里有同一个班级,那么你就是皇室成员了。"