2014-09-03 33 views
1

我請求測試鏈接https://terran.gamebox.com/facebook/issueOrder.jhtml?amount=5&gameId=1&serverId=1&role=role 我可以看到在郵件中 頁,但除沒有顯示在catalina.out的如何獲得與Spring MVC的錯誤消息在tomcat的catalina.out的

這是我的配置文件

<bean id="exceptionResolver" class="com.gamebox.HandlerException"> 

HandlerException實現HandlerExceptionResolver

我必須指出,我可以得到其他控制器的異常,例如null pointer異常

我想這是一個彈簧內部異常,但我需要捕獲catalina.out文件中的所有異常。

我在@Controller中創建了一個@Service依賴關係,然後刪除@Service的類文件。 當我開始tomcat,一切正常,我請求這個控制器,我得到了異常消息,但catalina.out什麼也沒有顯示。 tomcat在運行模式下運行。

我粘貼響應消息,因爲這個mvc的動作第二天將會修復這個bug,但是如果將來沒有在catalina.out中顯示,我將在我的平臺上使用ajax和mvc,我會無能爲力。

我相信它涉及transactionManager的

拋出java.lang.ClassNotFoundException:com.gamebox.service.FacebookPayOrderService org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680) org.apache .catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) java.lang.Class.getDeclaredFields0(Native Method) java.lang.Class.privateGetDeclaredFields(Class.java:2300) java.lang.Class.getDeclaredFields (Class.java:1745) org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAn notationBeanPostProcessor.java:374) org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:322) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:846) 組織.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:498) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) org.springframework.beans.factory.support .AbstractBeanFactory $ 1.getObject(AbstractBeanFactory.java:295) org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSi ngleton(DefaultSingletonBeanRegistry.java:223) org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1117) org.springframework.web.method.HandlerMethod.createWithResolvedBean(HandlerMethod.java:220) org.springframework.web.servlet.handler.AbstractHandlerMethodMapping .getHandlerInternal(AbstractHandlerMethodMapping。的java:240) org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:56) org.springframework.web.servlet.handler.AbstractHandlerMapping.getHandler(AbstractHandlerMapping.java:298) org.springframework .web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1091) org.springframework.web.servlet.DispatcherServlet.getHandler(DispatcherServlet.java:1076) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java :896) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) org.springframework.web.servlet。框架SERV let.doGet(FrameworkServlet.java:827) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) 的javax.servlet .http.HttpServlet.service(HttpServlet.java:717) com.planetj.servlet.filter.compression.CompressingFilter.doFilter(CompressingFilter.java:270) com.gamebox.filter.SiteStatusFilter.doFilterInternal(SiteStatusFilter.java:51 ) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346) org.springframework.web.filter.DelegatingFilterProxy。的doFilter(DelegatingFilterProxy.java:259) Ô rg.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)

+0

如何登陸後,您的配置看? – heikkim 2014-09-03 13:02:14

+0

這是一個沒有配置的標準tomcat。 System.out.print或e.printStackTrace()可以在catalina.out中顯示。我查看關於它的一些信息。也許它涉及交易規則。 – 2014-09-03 13:37:42

+0

另一個問題是如何獲得@transactional異常沒有嘗試catch塊 – 2014-09-03 13:46:57

回答

0

所有系統輸出/錯誤會去卡塔利娜默認情況下.OUT。不要使用的System.out.println,使用記錄API和配置您的日誌兩個寫到控制檯。

如果你正在使用類似的logback,在您的應用程序只是SER這兩個寫安慰:

http://logback.qos.ch/manual/configuration.html

<configuration> 

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
    <!-- encoders are assigned the type 
     ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
    <encoder> 
     <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
    </encoder> 
    </appender> 

    <root level="debug"> 
    <appender-ref ref="STDOUT" /> 
    </root> 
</configuration> 

馴服飛躍的消息,你可以刪除共享記錄,並使用SLF4J 2路線飛躍直到samme記錄。看到這篇文章 http://www.codingpedia.org/ama/how-to-log-in-spring-with-slf4j-and-logback/

這不應該幫助forbedre知名度,爲您提供您的讓一切成catalina.out中的目標。

+0

感謝您的回答,我會嘗試它,我發現在tomcat base/logs/localhost.2014-09-04.log中的異常消息我用我的項目在我的電腦裏,一切都OK。我的操作系統是Windows 7,但我的服務器是Linux。我真的不知道發生了什麼。我認爲每條stdout消息都會寫入catalina.out – 2014-09-04 05:36:29

0

最後,我找到了解決方案,我感到非常滿意百分百。

只有一個開口,編輯TOMCAT_HOME/CONF/logging.properties文件簡單地找到此行:。

org.apache.catalina.core.ContainerBase [卡塔利娜] [本地主機] .handlers = 2localhost.org .apache.juli.FileHandler

追加,java.util.logging.ConsoleHandler兩人這才線。

[卡塔利娜] org.apache.catalina.core.ContainerBase。[本地主機] .LEVEL = INFO org.apache.catalina.core.ContainerBase。[卡塔利娜]。[本地主機] .handlers = 2localhost.org。 apache.juli.FileHandler,java.util.logging.ConsoleHandler

所有的異常將被寫入catalina.out的文件。^ _^