HTTP Status 500 - java.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp
出现这个bug源至jstl的trim函数
这个函数将一个字符串两端的空格去掉
关于这个函数的一些介绍,大家可以查看这里
因为当时没有解决这个去掉空格的问题,所以就想起了自定义标签
自定义标签,由于是第一次使用jstl
就按照网站的方法自定义标签
网上方法,第一步就是下载2个jar
下载jstl.jar和standard.jar
问题就出现在了这一步,我下载了jstl1.2
<dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency>
因为jstl1.2.jar里面就已经包含了standard.jar
而以前的jstl1.1版本里就没有包含standard.jar
下面的图是我分别打开这些jar,以方便大家查看(jstl1.2已包含了standard.jar)
[caption id="attachment_1412" align="alignnone" width="620"]JSTL1.2包含了standard.jar[/caption]
错误就从这里开始了
当然,我自定义标签也是没有问题的,只是因为这里jar包冲突了,所以自定义的标签肯定是无法运行的
就是说,从此时开始就出现了博客最开始提到的那个错误
后来我就把配置的自定义标签的一些配置删除,以达到恢复的目的
然后这个错误就一直跟着我了
HTTP Status 500 - java.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp
直到刚刚,我就想删除掉jsp的编译目录试一下
偶然的发现,错误提示中出现的地址 org.apache.jsp.WEB_002dINF.theme.default_.shop.index_jsp
是一个完整的目录
他的地址类似于这样,注意看后面那一大串
/mysoft/eclipse/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/work/Catalina/localhost/LoveBN/org/apache/jsp/WEB_002dINF/theme/default_/shop
最终的解决方法就是删除这个目录下的文件即可
[caption id="attachment_1411" align="alignnone" width="445"] Could not initialize class org.apache.jsp[/caption]
这个bug真的是好深阿!!
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情