gpt4 book ai didi

java - 如何在tomcat的catalina.out中使用Spring MVC获取错误消息

转载 作者:行者123 更新时间:2023-11-28 22:29:40 25 4
gpt4 key购买 nike

我请求一个测试链接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的操作将在第二天修复此错误,但是如果以后在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(本机方法)
    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)

最佳答案

默认情况下,所有系统故障/错误将转到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的目标。

关于java - 如何在tomcat的catalina.out中使用Spring MVC获取错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25644210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com