博客
关于我
tomcat启动后,页面浏览时报错 Unable to compile class for JSP的解决方案
阅读量:623 次
发布时间:2019-03-14

本文共 906 字,大约阅读时间需要 3 分钟。

故障现象与问题根源

启动Tomcat服务器后,控制台显示正常启动信息,但当使用浏览器访问网站时,出现以下错误:

错误信息:  cn.com.infohold.common.sys.SnsPFilter - org.apache.jasper.JasperException: 未能编译JSP类缺失方法:getJspApplicationContext(ServletContext)

此错误表明Tomcat服务器无法正确处理JSP编译过程中的核心功能,直接影响应用页面的访问。

问题分析

经过排查,该问题的根源通常与以下方面有关:

  • JAR包版本不兼容

    Tomcat以及相关的JSP和Servlet组件通常需要特定的JAR包支持。若应用程序中使用的JAR包版本低于服务器端的jar包版本,可能会导致致命的类loading冲突。

  • 类loading冲突

    部分情况下,服务器上的k Servlet API或JSP引擎的jar包版本较高,而项目自身的jar包版本较低,可能导致类加载失败。

  • 灵活_refresh和重复资源

    不少开发者习惯性地将Servlet API/JSP相关的JAR包放置在idea或Eclipse的lib目录下,这些jar包再与服务器提供的同一功能类库产生冲突。

  • 解决方案

    针对上述问题,可以按照以下步骤进行修复:

  • 清理重复JAR包

    在项目根目录的/WEB-INF/lib目录中,删除以下文件(如果存在):

    • javax.servlet.jar
    • javax.servlet.jsp.jar
  • 将必要的JAR包引入项目

    如果仍需要这些类库,建议将服务器中自带的jar包复制到项目的/WEB-INF/lib目录中,同时删除服务器原有路径中的此等文件。
    (注意:操作前务必备份文件,以备不时之需)

  • 重启服务器并测试

    确认以上步骤完成后,重启Tomcat服务器,重新访问目标页面。
    如果问题依旧存在,请检查web.xmljava.lang.ClassLoader的类加载顺序,确认是否有其他冲突。

  • 额外信息

    如有需求,推荐参考以下文献:

    你可能感兴趣的文章
    C语言编译错误列表
    查看>>
    看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
    查看>>
    CentOS5 Linux编译PHP 报 mysql configure failed 错误解决办法
    查看>>
    《web安全入门》(四)前端开发基础Javascript
    查看>>
    pycharm新建文件夹时新建python package和新建directory有什么区别?
    查看>>
    python中列表 元组 字典 集合的区别
    查看>>
    python struct 官方文档
    查看>>
    Android DEX加固方案与原理
    查看>>
    iOS_Runtime3_动态添加方法
    查看>>
    Leetcode第557题---翻转字符串中的单词
    查看>>
    Problem G. The Stones Game【取石子博弈 & 思维】
    查看>>
    Java多线程
    查看>>
    openssl服务器证书操作
    查看>>
    expect 模拟交互 ftp 上传文件到指定目录下
    查看>>
    PDF.js —— vue项目中使用pdf.js显示pdf文件(流)
    查看>>
    我用wxPython搭建GUI量化系统之最小架构的运行
    查看>>
    我用wxPython搭建GUI量化系统之多只股票走势对比界面
    查看>>
    selenium+python之切换窗口
    查看>>
    重载和重写的区别:
    查看>>
    搭建Vue项目步骤
    查看>>