Tomcat启动项目,报错The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xm

===========生活不止眼前的苟且,还有诗和远方的BUG==========



这是一个偶然的事情,这个项目目前只有我一个人负责,但是有时候其他人需要访问这个项目,就需要从我本地启动,我觉得很麻烦,于是,我决定,部署到服务器上去,OK,就这么干!!!原以为应该很快完成的,木有想到,问题出现啦~~~~~



第一步,导出war包,IDE工具支持的,不具体描述啦

第二步,服务器上按照tomcat,本人安装的版本是apache-tomcat-6.0.41.exe,jdk是服务器上原有的,版本是1.7(服务器上可能存在多个版本的tomcat,所以安装时,注意端口的配置,冲突的话,需要修改,此处不介绍)

第三步,把项目war包放到tomcat/webapps下面

第四步,启动tomcat/bin/tomcat6.exe

第五步,命令窗口内显示启动成功。

第六步,项目访问,直接报错,报错页面如下:

Tomcat启动项目,报错The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xm


第七步,解决问题

解决方法1:(本人情况,此方法不适合)确认tomcat下部署的项目的WEB-INF/lib下是否有jar包:jstl-1.1.jar和standard-1.1.jar,如果没有,则将项目内的jar包复制到lib下,重新启动即可。

解决方法2:(本人情况,此方法不适合)解压standard-1.1.jar,将里面的.tld文件,复制到lib下,重新启动即可。


网上大部分说法是这样的,但是我的问题依旧木有解决。。。。。

纠结苦恼困惑@#¥!%¥#%@#¥@#


第八步,真正解决问题,找根源

上面俩方法都不好使,我就开始了无穷尽的百度啦

到底为什么呢,我再思考~~~~我myeclipse里是可以正常启动并访问的,那为什么tomcat启动就不行呢。。。

so,我来百度tomcat和jstl的微妙关系,得到了下面的结果↓

jstl1.1版本由2个必要包构成:standard-1.1.jar和JSTL1.1.jar;

jstl1.2版本只有一个必要包JSTL1.2.jar。

经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版本;

那么我的tomcat是6,自然是支持jstl-1.1.jar和standard-1.1.jar的,我的版本也是这样的,那为什么还是有问题呢

突然,灵光乍现,我想看看我的.classpath文件,如下图:

Tomcat启动项目,报错The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xm


我不知道别人的.classpath是什么样的,反正我的这个,上面有这么一段,所有,我愉快的去下载了个jstl-1.2.jar,然后愉快的移除了jstl-1.1.jar和standard-1.1.jar,然后重新在项目里build path,完成后,启动项目,项目不受影响,能启动,能访问,然后我导出war包,重新放到tomcat、webapps下,启动,访问,成功~~~~



总结一下,也没啥可总结的,就是勇敢下手,改错了大不了重头再来。别人的方法可能不适用你,那就找到自己的办法,棒棒哒~~~


此处应该有掌声~~~~