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