码迷,mamicode.com
首页 > Web开发 > 详细

同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题

时间:2015-11-21 21:10:53      阅读:871      评论:0      收藏:0      [点我收藏+]

标签:

问题是这样的,最近部署一个项目,发现每次访问首页的时候老是报如下的错误:

org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    org.springframework.web.servlet.DispatcherServlet.triggerAfterCompletionWithError(DispatcherServlet.java:1284)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:965)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.pcitc.sso.server.uic.utils.DemoFilter.doFilter(DemoFilter.java:62)
    com.pcitc.sso.client.SSOFilter.doFilter(SSOFilter.java:138)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

root cause

java.lang.NoClassDefFoundError: javax/servlet/jsp/jstl/core/Config
    org.springframework.web.servlet.support.JstlUtils.exposeLocalizationContext(JstlUtils.java:101)
    org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:135)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:183)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:266)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.pcitc.sso.server.uic.utils.DemoFilter.doFilter(DemoFilter.java:62)
    com.pcitc.sso.client.SSOFilter.doFilter(SSOFilter.java:138)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

root cause

java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)
    org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1493)
    org.springframework.web.servlet.support.JstlUtils.exposeLocalizationContext(JstlUtils.java:101)
    org.springframework.web.servlet.view.JstlView.exposeHelpers(JstlView.java:135)
    org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:183)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:266)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1225)
    org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1012)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:931)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:822)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:807)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.pcitc.sso.server.uic.utils.DemoFilter.doFilter(DemoFilter.java:62)
    com.pcitc.sso.client.SSOFilter.doFilter(SSOFilter.java:138)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:108)

按照报错信息,问题应该是出在jstl上面,要么是没有导入jstl的jar包,要么是没有引入jstl标签,我检查了项目发现这些都没有问题,按照网上的很多做法,依然没有解决我的问题,这个问题大概折腾了我大概一周左右,依然没法解决,最后非常沮丧,可是沮丧归沮丧,问题总归是要处理的,而我又坚信没有解决不了的问题。于是我想到了我之前部署的该项目有个版本是没有问题,现在也已经在线上运行良好,所以我就想到了对比两个项目的jar包,我以为是这个版本新加的某些jar包有问题,所以一个一个的对jar包,把出问题的这个版本多余的jar包全部删除了,保持和之前没有问题的那个版本的jar包一模一样,可是问题还没有解决,最后我把之前没有问题的版本的jar全部拷贝过来全部替换掉现在的jar包,问题于是很奇怪的解决了,我很纳闷,于是一个个的找问题,最后发现问题出现的jstl上面,都是jstl1.2版本的,居然一个有问题,最后我把本地maven仓库的jstl删除了,重新下载这个版本的jstl,也没有问题了。最后我觉得问题可能是,我刚好下载到了有问题的jstl,估计jstl的开发人员当时刚好提交了有问题的jstl,可刚好被我下载到了,虽然最后又进行了修复,可是我的仓库里面已经是有问题的jstl了。

解压有问题的jstl的jar包,报如下错误:

技术分享

问题终于解决了,非常开心。下面附上两个同样版本的jstl,一个有问题,一个没有问题,有兴趣的可以自己试试。点击下载两个jstl

同样版本的jstl,都是jstl1.2版本,有个有问题,另一个没有问题

标签:

原文地址:http://www.cnblogs.com/longshiyVip/p/4984597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!