java.lang.NoClassDefFoundError 异常解读
2016-05-11 15:28
621 查看
今天在开发的过程中遇到一个错误与大家分享一下 :我遇到的错误是 java.lang.NoClassDefFoundError 这个错误的意思是什么了?没有找到定义的类的错误。与之相似的一个异常时java.lang.NotClassFound,这个异常表名没有找到类。马虎的开发人员可能会把 第一个错误当成第二个错误去处理,如果这样你就上当了。
先说一下java.lang.NotClassFound 与 java.lang.NoClassDefFoundError的区别:java.lang.NoClassDefFoundError 是unchecked Exception(也就是常说的运行时异常),java.lang.NotClassFound 是checkedException 对于这两种异常不熟悉的朋友请自行学习。
java.lang.NotClassFound 造成的原因一般是缺少类文件,或者缺少jar造成的,解决方案是去查找异常指向的类,添加相应的jar或者类文件。
java.lang.NoClassDefFoundError 产生的原因是 在类中有着静态的方法或者静态的方法块,去掉之后异常解除。具体原因有待分析
先说一下java.lang.NotClassFound 与 java.lang.NoClassDefFoundError的区别:java.lang.NoClassDefFoundError 是unchecked Exception(也就是常说的运行时异常),java.lang.NotClassFound 是checkedException 对于这两种异常不熟悉的朋友请自行学习。
java.lang.NotClassFound 造成的原因一般是缺少类文件,或者缺少jar造成的,解决方案是去查找异常指向的类,添加相应的jar或者类文件。
java.lang.NoClassDefFoundError 产生的原因是 在类中有着静态的方法或者静态的方法块,去掉之后异常解除。具体原因有待分析
Caused by: java.lang.NoClassDefFoundError: Could not initialize class com.thinkgem.jeesite.common.sys.utils.UserUtils at com.thinkgem.jeesite.cms.service.CategoryServiceImpl.findByUser(CategoryServiceImpl.java:41) at com.thinkgem.jeesite.cms.service.CategoryServiceImpl$$FastClassBySpringCGLIB$$7d62ae78.invoke(<generated>) at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:708) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:644) at com.thinkgem.jeesite.cms.service.CategoryServiceImpl$$EnhancerBySpringCGLIB$$5b7c636a.findByUser(<generated>) at com.alibaba.dubbo.common.bytecode.Wrapper2.invokeMethod(Wrapper2.java) at com.alibaba.dubbo.rpc.proxy.javassist.JavassistProxyFactory$1.doInvoke(JavassistProxyFactory.java:46) at com.alibaba.dubbo.rpc.proxy.AbstractProxyInvoker.invoke(AbstractProxyInvoker.java:72) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:53) at com.alibaba.dubbo.rpc.filter.ExceptionFilter.invoke(ExceptionFilter.java:64) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.TimeoutFilter.invoke(TimeoutFilter.java:42) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.TraceFilter.invoke(TraceFilter.java:78) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ContextFilter.invoke(ContextFilter.java:60) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.GenericFilter.invoke(GenericFilter.java:112) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.ClassLoaderFilter.invoke(ClassLoaderFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.filter.EchoFilter.invoke(EchoFilter.java:38) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:91) at com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol$1.reply(DubboProtocol.java:108) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:84) at com.alibaba.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:170) at com.alibaba.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:52) at com.alibaba.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:82) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ... 1 more
相关文章推荐
- StrutsPrepareAndExecuteFilter的作用
- 常用的Java Date 方法
- Java基础第五天_静态代码块、类的继承和接口
- 【第六章】 AOP 之 6.6 通知参数 ——跟我学spring3
- java算法 -- zip解压,压缩
- MS Office2010、WPS2015、OpenOffice4用Java将Office文档转换为PDF,WIN7 64位系统
- 深入浅出RxJava——响应式的好处
- eclipse提示db-record doesn't exist
- Java从后台重定向(redirect)到另一个项目的方法
- weblogic打补丁修复JAVA反序列化漏洞
- Java 设计模式(十三) 接口隔离原则(ISP)
- 多线程05:《疯狂Java讲义》学习笔记——线程同步
- JNI字段描述符“([Ljava/lang/String;)V”
- Java基本数据类型
- java RandomAccessFile类
- 二叉树操作(Java语言)
- 多线程04:《疯狂Java讲义》学习笔记——控制线程
- Java获取随机数的3种方法
- java 对象流、管道流、基本数据流、字节数组流
- 深入浅出RxJava——基础篇