You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Struts2.5运行时抛出的ClassNotFoundException异常

Struts2.5项目启动报Filter类找不到异常排查解决指南

首先附上完整报错信息:

org.apache.catalina.core.StandardContext filterStart
SEVERE: Exception starting filter [struts2]
java.lang.ClassNotFoundException: org.apache.struts.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter


排查步骤

按优先级依次核对以下问题:

  • 检查web.xml中Filter类的拼写错误
    报错中出现的类名是StrutsPrepareAndExcuteFilter,正确拼写为StrutsPrepareAndExecuteFilter,注意Execute单词的拼写,报错里的Excute少了一个字母e,优先修正拼写错误。
  • 核对Struts2.5版本对应的Filter包路径
    Struts2.5版本之后该Filter的包路径已调整,不再包含ng层级,且正确的包前缀为org.apache.struts2而非org.apache.struts,报错中的路径属于旧版本废弃路径。
  • 检查项目依赖完整性
    如果路径拼写全部正确仍报错,核对依赖配置:
    • 用Maven/Gradle管理依赖的项目,确认struts2-core依赖版本为2.5.x系列,且依赖scope未设置为provided导致未打入部署包
    • 手动导入jar包的项目,确认WEB-INF/lib目录下存在对应版本的struts2-core.jar,且jar包未损坏
  • 检查IDE部署同步状态
    确认IDE打包部署时,已将struts2相关依赖同步到部署目录的WEB-INF/lib下,避免缓存导致的依赖缺失问题。

最终修复方案

修正web.xml中Struts2过滤器的配置,正确配置示例如下:

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

确认struts2-core依赖正确引入后重新部署即可解决该异常。


内容的提问来源于stack exchange,提问作者uma punna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 12:45:04