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)。
pom.xml 加入依賴:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version> <!-- 與 Struts 版本對應 -->
</dependency>
commons-lang3-3.x.jar 放入 WEB-INF/lib 並重新部署。mvn dependency:tree 確認無多版本共存;若有,使用 <exclusion> 排除舊版。| Struts 版本 | commons-lang3 建議版本 |
|---|---|
| 2.3.x | 3.1 ~ 3.4 |
| 2.5.x | 3.5 ~ 3.12 |
| 6.x | 3.12+ |
重新啟動 Tomcat,觀察控制台不再拋出 NoClassDefFoundError,且 Struts2 過濾器啟動成功。