strut2配置错误集合

用tomcat6启动时,出现下面的错误
java.lang.NoClassDefFoundError: Lcom/opensymphony/xwork2/util/logging/Logger;

Caused by: java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.logging.Logger

原因是struts2的包和xwork的包的版本不同
我用的是
xwork-2.0.4.jar

struts2-core-2.1.8.1.jar

那么struts2-core-2.1.8.1.jar包下面的org.apache.struts2.dispatcher.FilterDispatcher类有一个log全局变量
private Logger log = LoggerFactory.getLogger(FilterDispatcher.class);

LoggerFactory是在
com.opensymphony.xwork2.util.logging.LoggerFactory;

而xwork-2.0.4.jar没有这个类,要下载xwork-2.1.2.jar以上的版本才Yui有这个logging包


下载网址是
http://www.opensymphony.com/xwork/download.action

把xwork-2.0.4.jar换为xwork-2.1.2.jar重新启动项目就ok了



太郁闷了,struts2的这些jar包存在很严重的兼容问题,其原因在于jar中类的实现需要在另外一个jar中实现,但是jar的版本很多,struts2.1.x添加了struts2.0.x没有的接口,那么就需要其他jar也跟着更新,必须需要好好整理下,有些时候需要去tomcat  /webapp/文件下删除失败项目,然后重新启动项目才会生效

你可能感兴趣的:(apache,tomcat,yui)