热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

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

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

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版本,有个有问题,另一个没有问题


推荐阅读
author-avatar
猫爱吃鱼了
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有