龙空技术网

一个tomcat配置解决附件上传报错java.lang.NoClassDefFoundError

波波说运维 247

前言:

此刻朋友们对“notjavahome”大约比较重视,各位老铁们都需要知道一些“notjavahome”的相关知识。那么小编同时在网摘上收集了一些有关“notjavahome””的相关知识,希望兄弟们能喜欢,朋友们一起来学习一下吧!

概述

最近连续碰到了两次这类型报错java.lang.NoClassDefFoundError,都是在系统附件上传时报的错误,所以做一下整理记录,做个备忘!

报错:

报错提示:java.lang.NoClassDefFoundError

思路:

java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。

提示信息:"Can't connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。

解决办法:

1、如果服务器上安装有图形界面,可以通过设置环境变量:DISPALY=127.0.0.1:0.0解决。

2.、如果没有安装图形界面,可以在Java运行时加上参数:-Djava.awt.headless=true。

3、使用PJA库来代替本地图形处理库。

解决:Tomcat的修改如下:

打开 %Tomcat_home%/bin/catalina.sh 文件在-Djava.io.tmpdir="$CATALINA_TMPDIR"后,启动Tomcat的脚本中加上:-Djava.awt.headless=true

修改后重启,业务部门反馈问题解决。

如果大家有用到tomcat,刚好项目需上传图片之类,以后看到类似报错这样解决就可以了。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

标签: #notjavahome #java报错信息