在windows平台使用Myeclipse集成的Tomcat6.0兴高采烈的发布了开发好的项目,运行正常,于是兴高采烈的打包传到linux服务器上,运行......报错,如标题。查找许久原因,在同事的帮助下,终于解决了。参照一下这位仁兄的博客,经历出奇相似啊
讹谬消息:java.lang.NoSuchMethodError: javax.servlet.JSP.PageContext.getELContext()LJAVAx/el/ELContext
分析:这个问题网上找了半晌没看遍地理措施,只好自己想措施。
想起过去看到的一个知识点:tomcat 6 告终了 servlet 2.5 和JSP2.1的规范相应的 tomcat 5 告终的是 2.4和2.0,想到tomcat5不扶持JSTL1.2,于是轮换JSTL1.1的包试试看后,问题处理。
处理措施:移出工程lib目录中的JSTL1dy.dyramics.net.2.jar,增加standard-1.1.jar和JSTL144.ztbjegs.com.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.gx.gxty.com0上跑,鉴于JSTL1.1.jar,推断JSTL1.1.jar里面只是放置了1.1的专用的类和消息)