-1

このトピックを徹底的にグーグルで検索し、log4jのデバッグレベルをオンにしましたが、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が呼び出されていることがわかりますが、MenuContextListener内に成功または失敗を通知するログステートメントがもう1つあるはずなので、メソッドは完了しません。次に、突然contextDestroyedが呼び出され、それがそれです。

4

1 に答える 1

2

そのため、これ以上の情報を提供するログはどこにも存在しませんでした。どこにも!問題を見つけるために私がしたことは、struts-mainのソースコードを丹念に調べなければならなかったことです。そして、私は何を見つけましたか?MenuRepository.javaには、commons-digesterのインポートがありました。コモンズ-ダイジェスター?これは、ドキュメントのどこに記載されているか、ダウンロードに含まれていますか?コモンズダイジェスターは使用していません。

これが私の見解です。私が間違っている場合は誰かが私を訂正するか、これが何らかの形で正しいかどうかを確認してください。これが書かれたとき、struts 1.xに戻ると、commons-digesterはstrutsパッケージの一部だったのに、struts-menuのドキュメントでcommons-digesterに言及するのはなぜですか?今ではそうではないので、commons-digesterを個別にダウンロードする必要があります。したがって、私の結論は、このパッケージをStruts 2.xとうまく組み合わせる方法として、どこかにドキュメントが必要であるということです。

また、誰でも私にストラットメニューを使用するための2011年の代替案を教えてもらえますか?ユーザーがメニューにカーソルを合わせると、右側に開くメニューがあります。これは、struts-menuに含まれているVelocityCoolWindowsの例と非常によく似ています。

于 2011-05-22T13:43:24.573 に答える