我有一个基于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
,但也出现了同样的错误。
有人能帮我想出解决这个问题的办法吗?
我认为这个问题可以通过在2个或多个jar中删除同一个类来解决,或者将错误的wlfullclient.jar放入项目中。你应该试着把那个罐子从你的图书馆里拿出来。
Pierluigi Vernetto 的评论解决了这个问题
"weblogic.kernel.KernelStatus在许多JAR文件中,如$MIDDLEWARE_HOME/modules/com.bea.core.weblogic.workmanager_1.9.0.0.JAR、wlclient.JAR等。
很可能在类路径中,您选择了错误的
把一套好罐子放在一起是一件令人沮丧的事。。。不要放弃。。。请记住,官方没有办法对扫描给定类的JAR的顺序进行排序,所以如果你在两个罐子里有相同的类,你就是""