火生艾热吧 关注:22贴子:1,318
  • 1回复贴,共1

tomcat加载struts2

只看楼主收藏回复

困扰了我半天的问题,终于明白了。发帖留念


1楼2012-01-11 15:20回复

    做第二个ssh工程的时候,启tomcat一直报struts2起不来。但是配置完全按照第一个copy的,让我极度困扰
    2012-1-11 13:52:32 org.apache.catalina.core.StandardContext filterStart
    严重: Exception starting filter struts2
    Unable to load configuration. - [unknown location]
    at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:428)
    at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:69)
    at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:295)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:422)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:115)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3838)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4488)
    于是去查了struts_2.2.1.1里面org.apache.struts2.dispatcher.Dispatcher的源代码 http://code.lupaworld.com/code.php?mod=list&itemid=33&path=./struts_2.2.1.1/
    407. try {
    408. init_DefaultProperties(); // [1]
    409. init_TraditionalXmlConfigurations(); // [2]
    410. init_LegacyStrutsProperties(); // [3]
    411. init_CustomConfigurationProviders(); // [5]
    412. init_FilterInitParameters() ; // [6]
    413. init_AliasStandardObjects() ; // [7]
    414.
    415. Container container = init_PreloadConfiguration();
    416. container.inject(this);
    417. init_CheckConfigurationReloading(container);
    418. init_CheckWebLogicWorkaround(container);
    419.
    420. if (!dispatcherListeners.isEmpty()) {
    421. for (DispatcherListener l : dispatcherListeners) {
    422. l.dispatcherInitialized(this);
    423. }
    424. }
    425. } catch (Exception ex) {
    426. if (LOG.isErrorEnabled())
    427. LOG.error("Dispatcher initialization failed", ex);
    428. throw new StrutsException(ex);
    429. }
    发现报错的是一个catch,应该是 init_DefaultProperties(); // [1] //读取xml文件 的问题
    再找原因,原来是xml解析的jar包的问题两个项目的 xerces-2.6.2.jar 冲突
    解决方法是,将两个xerces-2.6.2.jar从项目里删除,放到tomcat的lib下面或者用两个tomcat


    2楼2012-01-11 15:28
    回复