您的位置:首页 > Web前端

java.lang.NoSuchFieldError: deferredExpression

2014-11-15 23:58 369 查看
在使用JSTL标签时发生了如下异常:当修改了某个jsp页面时,刷新浏览器时会报如下错误,导致项目异常。错误现场如下:

-----------------------------------------------------------------------------------------------------------------------------------------------------------

异常: java.lang.NoSuchFieldError: deferredExpression

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NoSuchFieldError: deferredExpression

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:274)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

oilsb.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20)

root cause

java.lang.NoSuchFieldError: deferredExpression

org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178)

org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166)

org.apache.jsp.sitetotal_005fdisplay_jsp._jspDestroy(sitetotal_005fdisplay_jsp.java:44)

org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:61)

org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:425)

org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:139)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:329)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:337)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

oilsb.filter.CharacterEncodingFilter.doFilter(CharacterEncodingFilter.java:20)

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

错误原因:

jstl版本冲突,也就是说项目中引入了两种版本的jstl库文件。遇到这个异常的时候是用jstl标签,是版本问题,由于MyEclipse添加Java EE5,其中自动包括了jstl1.2的版本,lib中又存在一个jstl1.1.2的jar包,把旧版本的删掉就可以了--注意同时删除掉tomcat项目里面的旧版本

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

解决方案:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>使用的是jstl.jar

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt"%>使用的是jstl-1.1.2.jar或jstl-1.2.jar

工程中使用的标签必须统一,只用一个jar包。发布后检查Tomcat中jar包是否只有一个。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: