Jboss 远程EJB调用引发java.lang.ClassNotFoundException

Jboss 远程EJB调用引发java.lang.ClassNotFoundException,jboss,ejb-3.0,Jboss,Ejb 3.0,我在客户端遇到了以下异常,但这种异常很少出现。 如果找不到该类,则每次都会出现此错误,但此错误很少出现 我们在JBoss5.1服务器上部署了swing应用程序 我们有两个主要组成部分: 客户机-与服务器通信并呈现Java Swing组件的客户机代码 服务器-负责将屏幕和事件数据发送到客户端的服务器代码 客户机使用EJB容器与服务器通信 Stacktrace: java.lang.ClassNotFoundException: com.tools.project.server.CustomUtil

我在客户端遇到了以下异常,但这种异常很少出现。 如果找不到该类,则每次都会出现此错误,但此错误很少出现

我们在JBoss5.1服务器上部署了swing应用程序

我们有两个主要组成部分:

客户机-与服务器通信并呈现Java Swing组件的客户机代码

服务器-负责将屏幕和事件数据发送到客户端的服务器代码

客户机使用EJB容器与服务器通信

Stacktrace:

java.lang.ClassNotFoundException: com.tools.project.server.CustomUtil
    at org.jboss.remoting.serialization.ClassLoaderUtility.loadClass(ClassLoaderUtility.java:103)
    at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:86)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:179)
    at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
    at java.io.ObjectInputStream.readClassDesc(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObjectVersion2_2(JavaSerializationManager.java:238)
    at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:138)
    at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:123)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.versionedRead(MicroSocketClientInvoker.java:1220)
    at org.jboss.remoting.transport.socket.MicroSocketClientInvoker.transport(MicroSocketClientInvoker.java:850)
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:165)
    at org.jboss.remoting.Client.invoke(Client.java:1724)
    at org.jboss.remoting.Client.invoke(Client.java:629)
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.remoting.ClusterChooserInterceptor.invoke(ClusterChooserInterceptor.java:84)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.ejb3.remoting.ClusteredIsLocalInterceptor.invoke(ClusteredIsLocalInterceptor.java:54)
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
    at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
    at $Proxy3.invoke(Unknown Source)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:207)
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:164)
    at $Proxy2.getMessagingBuffer(Unknown Source)

只有当服务器向引用
com.tools.project.server.CustomUtil的客户端发送对象时,才会发生此错误。将
com.tools.project.server.CustomUtil
添加到客户端类加载器,或从服务器响应中删除引用。

只有当服务器向引用
com.tools.project.server.CustomUtil的客户端发送对象时,才会发生错误。将
com.tools.project.server.CustomUtil
添加到客户端类加载器,或者从服务器响应中删除引用。

情况并非如此,因为它并非每次都发生。我发现以下链接与此问题有关,但没有解决方案。只有当我们抛出异常时,这个问题才会发生。我怀疑当异常错误stacktrace长度超过某个限制时,在远程类加载中会出现“找不到类”问题。您的异常是否引用了
com.tools.project.server.CustomUtil
?是的,我的异常引用了CustomUtil类。正如我前面所说,从远程客户端,我们正在使用JNDI进行EJB调用。事实并非如此,因为它并非每次都发生。我发现以下链接与此问题有关,但没有解决方案。只有当我们抛出异常时,这个问题才会发生。我怀疑当异常错误stacktrace长度超过某个限制时,在远程类加载中会出现“找不到类”问题。您的异常是否引用了
com.tools.project.server.CustomUtil
?是的,我的异常引用了CustomUtil类。正如我前面所说的,我们正在使用JNDI从远程客户端进行EJB调用。。