首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Struts2 整合報錯 NoClassDefFoundError: org/apache/commons/lang3/StringUtils 解決方案

     編輯:程式設計綜合問答

錯誤堆疊

java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.register(...)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang3.StringUtils

原因分析

Struts 2.3/2.5 版本依賴 commons-lang3-3.x.jar,但專案 classpath 中缺少該 JAR 包,或版本不匹配(如誤引入 commons-lang 2.x)。

解決步驟

  1. Maven 專案:在 pom.xml 加入依賴:
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.12.0</version> <!-- 與 Struts 版本對應 -->
    </dependency>
    
  2. 非 Maven 專案:下載 commons-lang3-3.x.jar 放入 WEB-INF/lib 並重新部署。
  3. 檢查版本衝突:執行 mvn dependency:tree 確認無多版本共存;若有,使用 <exclusion> 排除舊版。

常見版本對照表

Struts 版本commons-lang3 建議版本
2.3.x3.1 ~ 3.4
2.5.x3.5 ~ 3.12
6.x3.12+

驗證方法

重新啟動 Tomcat,觀察控制台不再拋出 NoClassDefFoundError,且 Struts2 過濾器啟動成功。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved