Java 如何在tomcat'中使用spring mvc获取错误消息;卡塔琳娜出去了
我请求一个测试链接 我可以在第页看到消息 但在catalina.out中没有出现例外 这是我的配置文件Java 如何在tomcat'中使用spring mvc获取错误消息;卡塔琳娜出去了,java,spring,spring-mvc,tomcat,exception,Java,Spring,Spring Mvc,Tomcat,Exception,我请求一个测试链接 我可以在第页看到消息 但在catalina.out中没有出现例外 这是我的配置文件 <bean id="exceptionResolver" class="com.gamebox.HandlerException"> HandlerException实现HandlerExceptionResolver 我必须指出,我可以获取另一个控制器的异常,例如null指针exception 我猜这是一个spring内部异常,但我需要在catalina.out文件中捕获
<bean id="exceptionResolver" class="com.gamebox.HandlerException">
HandlerException
实现HandlerExceptionResolver
我必须指出,我可以获取另一个控制器的异常,例如null指针
exception
我猜这是一个spring内部异常,但我需要在catalina.out
文件中捕获所有异常
我在@Controller
中创建一个@Service
依赖项,然后删除@Service
的类文件。
当我启动tomcat
时,一切正常,我请求这个控制器,我得到了异常消息,但是catalina.out
没有显示任何内容。tomcat
以运行模式运行
我粘贴了响应消息,因为这个mvc的操作将在第二天修复这个bug,但是如果在catalina.out中没有显示,我以后在使用带有mvc的ajax时将不会在我的平台中跟踪任何内容,我将很难找到任何内容
我相信这涉及到交易经理
java.lang.ClassNotFoundException:com.gamebox.service.FaceBookPayrderService
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)
javaservlet.http.HttpServlet.service(HttpServlet.java:617)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812)
javaservlet.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并将记录器配置为写入控制台 如果您使用的是类似于回退的东西,在您的应用程序中只考虑它写入控制台:
这将有助于提高可视性,并为您实现进入catalina.out的目标。最后,我找到了解决方案,我非常满意
只有一个更改,请编辑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文件。^ ^您的日志配置如何?它是一个没有配置的标准tomcat。System.out.print或e.printStackTrace()ca
<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>