我想調試爲什麼Spring的AnnotationMethodHandlerAdapter沒有調用我的控制器中的某些處理程序。我在Netbeans中沒有遇到任何錯誤,只是瀏覽器中有404錯誤。我嘗試在我的一個工作控制器/處理程序中放置一個斷點,然後沿着鏈條在調度程序中放置一個斷點。在glassfish下登錄spring 3.0?
Netbeans的顯示了我一些有趣的方法體:
protected ModelAndView invokeHandlerMethod(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception
{
//compiled code
throw new RuntimeException("Compiled Code");
}
我懷疑是由AOP MagiQ公司造成的。 Undeterred,我試着配置log4j來跟蹤調用,並顯示來自org.springframework.web.servlet.mvc.annotation包在調試級別記錄的所有消息,但只需創建一個log4j.properties文件並放入我得到的classpath無非是默認的「INFO:」級別的消息。在web.xml中添加context-param和listener失敗,因爲容器找不到log4j類,即使它們在那裏,即使我可以再次將它們添加到項目中。
所以,問題是 - 我需要做什麼來獲得方法跟蹤(這可以通過AOP完成)和增強的調試(這肯定需要log4j)在Spring 3.0下?
我看到了那個頁面,但我需要的是一個配方 - 在文件「bar」中輸入「foo」並進行部署。請注意,我嘗試了這裏描述http://forum.springsource.org/archive/index.php/t-17929.html - 但我沒有找到類的例外。 – florin 2010-11-04 03:37:00
嗯,我不能給你確切的,因爲我不知道你的打包/部署過程,但基本上你需要確保你的應用類路徑中沒有jcl-over-slf4j * .jar(WEB-INF/lib ),將slf4j-log4j12 * .jar和log4j * .jar添加到類路徑(WEB-INF/lib)中並使log4j.xml可用(通常在WEB-INF/classes中) – maximdim 2010-11-04 14:39:56
默認情況下,Spring使用Commons Logging。鏈接到的頁面解釋瞭如何使用SLF4J(使用JCL到SLF4J橋)。但OP不必切換到SFL4J來解決他的問題。 – 2010-11-05 07:22:44