我要求测试链接https://terran.gamebox.com/facebook/issueOrder.jhtml?amount=5&gameId=1&serverId=1&role=role 我可以在页面中看到该消息 但catalina.out中没有显示异常
这是我的配置文件
<bean id="exceptionResolver" class="com.gamebox.HandlerException">
HandlerException
实施HandlerExceptionResolver
我必须指出我可以获得其他控制器的例外,例如null pointer
例外
我猜它是一个Spring内部异常,但我需要捕获catalina.out
文件中的所有异常。
我在@Service
中创建@Controller
依赖关系,然后删除@Service
的类文件。
当我启动tomcat
时,一切正常,我请求此控制器,我收到了异常消息,但catalina.out
没有显示任何内容。 tomcat
在运行模式下运行。
我粘贴了响应消息,因为这个mvc的动作将在第二天用这个bug修复,但如果我没有显示我将来使用带有mvc的ajax,我将在我的平台中找不到任何内容在catalina.out中,我将无法找到任何东西。
我确信它涉及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(本机方法) java.lang.Class.privateGetDeclaredFields(Class.java:2300) java.lang.Class.getDeclaredFields(Class.java:1745) org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findPersistenceMetadata(PersistenceAnnotationBeanPostProcessor.java:374) org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessMergedBeanDefinition(PersistenceAnnotationBeanPostProcessor.java:322) org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyMergedBeanDefinitionPostProcessors(AbstractAutowireCapableBeanFactory.java:846) org.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.getSingleton(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.FrameworkServlet.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) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
答案 0 :(得分:0)
默认情况下,所有系统输出/错误都将转到catalina.out。不要使用System.out.println,使用日志API并将记录器配置为写入控制台。
如果您正在使用类似logback的东西,那么在您的应用程序中只需将其写入控制台:
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>
驯服spring消息,你可以删除commons-logging并使用slf4j将spring路由到同一个日志记录中。看到这篇文章 http://www.codingpedia.org/ama/how-to-log-in-spring-with-slf4j-and-logback/
这应该有助于提高可见度,并为您提供将所有内容都放入catalina.out的目标。
答案 1 :(得分:0)
最后,我找到了解决方案,我非常满意。
只有一个更改,编辑TOMCAT_HOME / conf / logging.properties文件然后找到这一行:
org.apache.catalina.core.ContainerBase。[Catalina]。[localhost] .handlers = 2localhost.org.apache.juli.FileHandler
将java.util.logging.ConsoleHandler追加到此行。
org.apache.catalina.core.ContainerBase。[Catalina]。[localhost] .level = INFO org.apache.catalina.core.ContainerBase。[Catalina]。[localhost] .handlers = 2localhost.org.apache.juli.FileHandler,java.util.logging.ConsoleHandler
所有异常都将写入catalina.out文件。^ _ ^