近期项目struts2升级到struts2.5版本,经历了几次小版本之后,在本地和测试服务器部署都未出现问题。
结果在给客户部署时,出现了项目启动失败的问题。
catalina日志报错很模糊:registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister.
这个信息是在启动失败后 卸载jdbc的时候报错出来的,所以原因不在这个。
往上明显的信息有:filters error,原因在这里。
这里在排查了web.xml后仍然未发现明显问题。
在尝试了单个tomcat启动单个项目,更改jdk,增加缓存后,都未得到有效解决。
最后,在localhost的日志文件里找到了明显的报错,
nomethodfound:Struts.xwork.configurationManagement下边d..addContainerprovieder.方法。怀疑是struts升级导致的。
在查询struts后,发现相关的jar包还有一个xwork没有改动,点进去发现果然存在一个该同名的类,反编译后没有方法,差了maven仓库后发现struts2.5以后xwork包取消了整合到了core核心包。
删除xwork即可。