• javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext解决办法(转)


    原文出处:http://smufvgwy.iteye.com/blog/842354

    java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext 

    相信各位很多用Tomcat在发布java web应用时,如果用到JSTL标签,并用到<c:forEach>的可能都碰到我这个问题,于是我在网上搜各位大虾们的解决之道,最多给的办法就是这一段: 
    经过tomcat版本变化后,又报出了此异常 

    java.lang.NoSuchMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext; 

    这是jstl引起的问题。 

    tomcat 6 实现了 servlet 2.5 和JSP2.1的规范相应的 tomcat 5 实现的是 2.4和2.0,想到tomcat5不支持JSTL1.2,于是替换JSTL1.1的包试试看后,问题解决。 

    解决方法 :移出工程lib目录中的 JSTL1.2.jar,添加standard-1.1.jar和JSTL1.1.jar 

    总结 : 

    jstl1.1版本由2个必要包构成:standard-1.1.jar和 JSTL1.1.jar;而jstl1.2版本只有一个必要包JSTL1.2.jar。(一开始在替换的过程中想当然的用JSTL1.1.jar换 JSTL1.2.jar,然后遗漏了standard-1.1.jar,耽搁了不少时间。) 

    经测试,tomcat6.0支持JSTL1.2版本,也支持JSTL1.1版 本;tomcat5.5只支持JSTL1.1(JSTL1.1一下版本未测试) 

    不建议将2个版本的3个包同时放在工程中,可能会发生版本冲突。(另外,实际 操作的时候发现JSTL1.2.jar和JSTL1.1.jar这2个包放一起可以在tomcat5.5和tomcat6.0上跑,鉴于 JSTL1.1.jar里面没有c.tld等文件,猜测JSTL1.1.jar里面只是放置了1.1的专用的类和信息) 
    但是我仔细检查了我的Tomcat版本,我的是Tomcat6.0.29,按理,我照大虾们给的办法就是在我的web应用的WEB-INF/lib/jstl-1.2.jar加上这个包就可以了,但事与愿违,不管我是加在我的web应用下,还是加在Tomcat/lib下,都还是报上面的错,我突然就想到看Tomcat的例子了,就D:apache-tomcat-6.0.29webappsexamples这个包下我找的例子,看到有关ForEach的例子了,我点了运行后,迭代成功了,我就纳闷了,看来与tomcat/lib 下面的包是没有关系的,然后我就找到这个例子对应的D:apache-tomcat-6.0.29webappsexamplesWEB-INFlib包下,看有两包,standard.jar,jstl.jar,于是我把这两包导到我自己的web应用的lib的目录下,再测试,耶,就成功了。。。。。我那个高兴之后的失落突然就出来了。 
    这是为什么喃? 

    我把这两个standard.jar,jstl.jar包的内容,和jstl-1.2.jar的内容作了对比,实在找不到问题,今天太晚了。明天再研究一下原因。希望我的这个解决问题,对广大朋友有所帮助啊。

  • 相关阅读:
    JVM系列文章(三):Class文件内容解析
    android开发 不注意的异常
    【数据结构】二叉树
    Android解析中国天气网的Json数据
    最简单也最难——怎样获取到Android控件的高度
    Android通过HTTP POST带參訪问asp.net网页
    js 推断 当页面无法回退时(history.go(-1)),关闭网页
    SQL Server数据库存储过程的异常处理
    SQL Server代码如何快速格式化,sqlserver代码
    sql server 获取指定格式的当前日期
  • 原文地址:https://www.cnblogs.com/m3Lee/p/3831410.html
Copyright © 2020-2023  润新知