我已經徹底搜索了這個主題,並打開了log4j的調試級別,但MenuContextListener根本無法啓動。這裏是我的信息有:在Struts 2.x中使用Struts-Menu - MenuContextListener不工作
我的web.xml文件
<listener>
<listener-class>net.sf.navigator.menu.MenuContextListener</listener-class>
</listener>
<context-param>
<param-name>menuConfigLocation</param-name>
<param-value>/WEB-INF/classes/menu-config.xml</param-value>
</context-param>
我的menu-config.xml文件
<?xml version="1.0" encoding="UTF-8" ?>
<MenuConfig>
<Displayers>
<Displayer name="TabbedMenu" type="net.sf.navigator.displayer.TabbedMenuDisplayer" />
</Displayers>
<Menus>
<Menu name="selectAction" title="Select Action" location="SelectAction">
<Item name="report" title="Report" location="Report"/>
<Item name="query" title="Query" location="Query"/>
<Item name="listings" title="Listings" location="Listings"/>
</Menu>
</Menus>
</MenuConfig>
我log4j的信息
May 21, 2011 1:02:33 PM org.apache.catalina.startup.HostConfig deployWAR
INFO: Deploying web application archive myproject.war
context path = /myproject
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.TX
log4j:ERROR Could not instantiate appender named "TX".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
log4j:ERROR Could not find value for key log4j.appender.R
log4j:ERROR Could not instantiate appender named "R".
2011-05-21 13:02:52 MenuContextListener [DEBUG] Starting struts-menu initialization
2011-05-21 13:02:52 MenuContextListener [DEBUG] using menuConfigLocation: /WEBINF/classes/menu-config.xml
May 21, 2011 1:02:52 PM org.apache.catalina.core.StandardContext start
SEVERE: Error listenerStart
May 21, 2011 1:02:52 PM org.apache.catalina.core.StandardContext start
SEVERE: Context [/myproject] startup failed due to previous errors
2011-05-21 13:02:52 MenuContextListener [DEBUG] destroying struts-menu...
May 21, 2011 1:02:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
context path = /docs
May 21, 2011 1:02:52 PM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
context path = /examples
May 21, 2011 1:02:53 PM org.apache.coyote.http11.Http11AprProtocol start
INFO: Starting Coyote HTTP/1.1 on http-8080
May 21, 2011 1:02:53 PM org.apache.coyote.ajp.AjpAprProtocol start
INFO: Starting Coyote AJP/1.3 on ajp-8009
May 21, 2011 1:02:53 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in 35104 ms
所以你看爲此偵聽器調用contextInitialize,但該方法未完成,因爲Menu內應該有1個更多的日誌語句ContextListener告訴我們成功或失敗。然後我們突然得到contextDestroyed調用,就是這樣。
您發佈的原始控制檯輸出顯示log4j問題,這顯然是掩蓋了消化器問題的原因。你應該開始一個關於struts-menu替代品的新問題。 – 2011-05-22 22:06:00