2012-01-28 66 views
1

我想解决与ClassNotFoundException 3天的问题,我找不到解决方案,所以我寻求帮助,当我尝试使用每一个问题时,问题发生方法,但EJB Entity Beans上的find或findAll除外。Eclipselink库java.lang.ClassNotFoundException

例如,当我尝试使用remove()方法:

ctx = new InitialContext(); 
remote = (CategoriesRemote) ctx.lookup("CategoriesFacade/remote"); 
remote.remove(category); 

我得到没有好看的例外:

Exception in thread "Thread-7" java.lang.RuntimeException: java.lang.ClassNotFoundException: org.eclipse.persistence.indirection.IndirectList 
    at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:318) 
    at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:386) 
    at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53) 
    at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91) 
    at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:898) 
    at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791) 
    at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744) 
    at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548) 
    at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234) 
Caused by: java.lang.ClassNotFoundException: org.eclipse.persistence.indirection.IndirectList 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:247) 
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:434) 
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:165) 
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620) 
    at org.jboss.system.JBossRMIClassLoader.loadClass(JBossRMIClassLoader.java:91) 
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247) 
    at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197) 
    at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574) 
    at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946) 
    at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870) 
    at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) 
    at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666) 
    at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322) 
    at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) 
    at java.rmi.MarshalledObject.get(MarshalledObject.java:142) 
    at org.jboss.aop.joinpoint.MethodInvocation.getArguments(MethodInvocation.java:309) 
    at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:386) 
    at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:53) 
    at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91) 
    at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82) 
    at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:898) 
    at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:791) 
    at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:744) 
    at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:548) 
    at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:234) 
    at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:216) 
    at org.jboss.remoting.Client.invoke(Client.java:1961) 
    at org.jboss.remoting.Client.invoke(Client.java:804) 
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60) 
    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.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77) 
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143) 
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62) 
    at $Proxy9.invoke(Unknown Source) 
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185) 
    at $Proxy18.remove(Unknown Source) 
    at nowyskos.modules.cms.CategorySender.run(CategorySender.java:88) 
    at java.lang.Thread.run(Thread.java:662) 
    at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72) 
    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.IsLocalInterceptor.invoke(IsLocalInterceptor.java:77) 
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    at org.jboss.ejb3.async.impl.interceptor.AsynchronousClientInterceptor.invoke(AsynchronousClientInterceptor.java:143) 
    at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102) 
    at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62) 
    at $Proxy9.invoke(Unknown Source) 
    at org.jboss.ejb3.proxy.impl.handler.session.SessionProxyInvocationHandlerBase.invoke(SessionProxyInvocationHandlerBase.java:185) 
    at $Proxy18.remove(Unknown Source) 
    at nowyskos.modules.cms.CategorySender.run(CategorySender.java:88) 
    at java.lang.Thread.run(Thread.java:662) 

以前我得到了关于无安全经理人例外,我解决了它加入

System.setSecuritymanager(new RMISecurityManager); 

并将client.all文件添加到VM选项。 但我找不到解决这个问题的方法。

我认为,在这种情况下,问题不是EJB或者安全管理器的原因,而是因为拨错的类路径,但在我的NetBeans项目我添加的EclipseLink库,additionaly我设置全局类路径中包含的EclipseLink的jar文件这个文件夹其中有IndirectList类。

我在客户端应用程序中收到此错误。 EJB模块在JBoss服务器上工作。

我的情况看起来很奇怪,我不知道为什么find或findAll方法完美工作,并删除或创建崩溃。

因为问题我真的很累,我不知道如何继续前进,请帮忙。

回答

0

嗯,根据我所看到的here,这个类"org.eclipse.persistence.indirection.IndirectList"它缺少的是目前在GlassFish的分布。所以,我猜想你的项目中使用的eclipselink可能存在错误的分布,它与JBoss AS一起工作。一个快速(但不是正确的解决方案),将添加一个最适合你的环境的罐子(from here)到你的类路径。我的建议是仔细检查eclipselink的版本和分布。

相关问题