1

我有一个基于 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并且遇到了同样的错误。

有人可以帮我解决这个问题吗?

4

1 回答 1

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 放在一起是一个令人沮丧的练习......不要放弃......并记住,官方没有办法对给定类的 JAR 扫描顺序进行排序,所以如果你在 2 个罐子里有相同的课程,你是皇室的 s****d"

于 2014-09-25T17:13:27.130 回答