首页 > 编程语言 >皕杰报表导出报 java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils

皕杰报表导出报 java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils

时间:2022-12-07 15:35:15浏览次数:52  
标签:lang java 报表 jar NoClassDefFoundError 导出 commons codec DigestUtils

从一张报表导出报错看如何分析解决皕杰报表的问题

有用户问了一个使用皕杰报表工具时遇到的问题,点击带图表的报表的导出excel按钮没有反应,且页面变成空白,不知从哪里着手解决问题。这种异常单从表面看不出哪里出的问题,需要结合报表日志和tomcat服务器日志看是出了什么问题。

皕杰报表导出报 java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils_jar包

从用户发来的tomcat日志看,错误信息是十分清楚的,其中一段截图如下:

皕杰报表导出报 java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils_jar包_02

其中很明确的错误信息是:

java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils。

其表达的意义是缺少定义类错误,所缺类的名称是DigestUtils。据此判断点击导出按钮出现空白的原因是WEB服务器缺少了jar包。而与导出excel相关的jar包如下:

皕杰报表导出报 java.lang.NoClassDefFoundError: org/apache/commons/codec/digest/DigestUtils_jar包_03

位置在WEB-INF/lib下,仔细检查下缺少哪个jar包,到皕杰报表工具中复制过来即可。

用户查看了web端程序,果然少了其中的commons/codec-1.10,从皕杰报表源文件中找到这个jar包复制过来,再点导出excel按钮,导出恢复正常。

所以说不会有无缘无故的错误,出错肯定有其必然的原因,耐心查找出错的原因才是解决问题的根本之道。

标签:lang,java,报表,jar,NoClassDefFoundError,导出,commons,codec,DigestUtils
From: https://blog.51cto.com/u_14014307/5919605

相关文章

  • java 引入logging日志
    1、yml添加 #日志配置logging:level:#自己的包名com.wrblog:debugorg.springframework:warn 2、在resources下创建logback.xml文件并更改自己的......
  • java阻塞队列
    1.defBlockingQueue阻塞队列是mq的底层。BlockingQueue阻塞队列,排队拥堵,首先它是一个队列,而一个阻塞队列在数据结构中所起的作用大致如下图所示:2.实现类BlockingQueue阻......
  • java 注解
    1.声明bean @Component 组件,没有明确的角色@Controller 在展现层使用,控制器的声明(Controller层)@Service 在业务逻辑层使用(service层)@Repository 在数据访问层使用(d......
  • Java GC
    0.GC  GC是垃圾收集的意思,内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是......
  • java对象的访问
    Java程序需要通过JVM栈上的引用访问堆中的具体对象。对象的访问方式取决于JVM虚拟机的实现。目前主流的访问方式有句柄和直接指针两种方式。指针:指向对象,代表一......
  • java单例模式
    1.饿汉式2.懒汉式2.1 双重检查2.2 静态内部类2.3 枚举......
  • java虚拟机运行时数据区域
    一.线程私有1.程序计数器(ProgramCounterRegister) 当前线程所执行字节码的行号。2. Java虚拟机栈(JavaVirtualMachineStacks)Java方法执行的内存模型:每个方法在......
  • java面试(JVM)
     1. JMM的两个语义1)happensbefore:一个线程前一个操作对后一个操作可见,具有传递性。确保多线程执行程序结果不变。2)asifserial:无论怎么重排序,程序执行结果不变,即不......
  • Java语言标识符的命名规范(超详细讲解)
    前言在上一篇文章中,壹哥带领大家开始编写了第一个Java案例,在我们的cmd命令窗口中输出了”HelloWorld“这句话。并且我还给大家留了一个小作业,你做出来了吗?但是在上......
  • java拼接逗号的四种方式
    1.使用String.joinList<String>list=newArrayList<>(Arrays.asList("1","2","3","4","5"));Stringresult=String.join(",",list);System.out.println(result);......