容器加载顺序

web.xml内的执行顺序是这样的 context-param-->listener-->filter-->servlet,而listener的执行顺序是按你书写顺序的...
我的项目中存在AB两个listener,Alistener在前,其中做了一些系统业务参数的初始化,Blistener就是Log4jConfigListener,本来是没什么问题的,但是A中偏偏有对日志的操作,所以在Blistener还没有生效前就要求log4j开始做日志处理,所以log4j同学就去找自己的配置文件,然后发现里面有一个${webapp.root},然后它就去system的property里面找,发现没有然后就报错...为什么没有呢?因为Blistener实际上去读取了servlet.realpath,然后把你设置的webAppRootKey和realpath关联起来,保存到system的property里面...结果B还没来得及干,A就去找了...

猜你喜欢

转载自jis117.iteye.com/blog/2226383