org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei错误解决方法。

昨天还好好的,可是今天就出错了,去网上查了下解决方案。找到一个貌似可行的方法:

1. 把部署到服务器上的工程里面的 WEBROOT/WEB-INF/lib目录下的两个jar包删除,然后重启服务器就OK了要删除的jar包是:javax.servlet.jar javax.servlet.jsp.jar原因是在tomcat里面的lib包下面也有这两个jar包,jar包冲突。

照着这样做,发现删除掉这两个jar后,再次用Myeclipse编译还是会在lib下出现这两个包,这下子就郁闷。又试了几下,结果一样。找了下 ClassPath,发现这两个包其实是在J2EE Library下的,我感觉这个错误肯定是跟这两个包有关的啦,索性拿了另外一个项目来测试,同样再次编译,可是那个项目的lib下却没有增加这两个包。

2.网上还有解释是这两个包跟tomcat下lib的包冲突,可是找了tomcat lib里面却没有这两个包,一时间也有点郁闷。

3.网上还有的情况是删除tomcat下已发布的这个项目,然后重新发布一次,我也试了,照样不行。

这些方法都试过,还是不行。之后我就把项目的项目下struts和lib下的包整合在一起,再把有重复的包删除掉,一运行,居然就通过了。。。项目lib下的 javax.servlet.jar javax.servlet.jsp.jar两个包也没再生成了。。

这种情况我的确没法解释,可能中间有一个操作我没注意到,然后就使得这两个包不会发布到根目录下。结果就幸运地解决问题了。

总之,这种问题挺烦的。可是要是能够在解决问题的过程中,更加熟悉tomcat和项目发布、编译的原理,哪怕只是过程,也挺有帮助的吧。

上面为我搜到的一个朋友的解决方法,我把这两个包删除后就好了,但是lib下还是会生成这两个包,通过查看包里面的类,找到jstl-1.1.2.jar里面的类与这两个类有相似,因为这种错误有可能是jar包冲突,包冲突可能是吧版本问题,就换了一个jstl.jar版本的解决了这个问题。

posted @ 2013-03-13 11:25  前后  阅读(3749)  评论(0编辑  收藏  举报