@ControllerAdvice不起作用,即使GlobalHandler类位于其他包中- Spring MVC异常处理

huangapple 未分类评论57阅读模式
英文:

@ControllerAdvice not working even GlobalHandler class is in other package- Spring MVC Exception Handling

问题

我有一个控制器在某些情况下会抛出 IOException 异常异常被抛出并且消息被打印出来但是 ControllerAdvice 类没有被触发此外我已将 GlobalHandler 类放在其他包中以下是我相关的文件

MainController.java

package com.spring.practice;

import java.io.IOException;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class MainController {
    @RequestMapping(value = "/hello.htm")
    public String hello() throws IOException {
        // 渲染 hello.jsp 页面
        return "hello";
    }

    @RequestMapping(value = "/test.htm")
    public String test() throws IOException {
        // 仅抛出异常以测试异常处理映射
        if (true) {
            throw new IOException("this is io exception");
        }
        // 渲染 hello.jsp 页面
        return "hello";
    }
}

GlobalHandler.java

package com.spring.test;

import java.io.IOException;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@ControllerAdvice
@EnableWebMvc
public class GlobalHandler {

@ExceptionHandler(IOException.class)
public ModelAndView exception(IOException e) {
    ModelAndView mav = new ModelAndView("exception");
    mav.addObject("name", e.getClass().getSimpleName());
    mav.addObject("message", e.getMessage());

    return mav;
}

}

web.xml

spring-servlet.xml

exception.jsp

hello.jsp


完整的错误日志(略)

<details>
<summary>英文:</summary>

I have a controller that throws an IOException in certain situations. The exception are being thrown and the message printed but the ControllerAdvice class is not getting fired.Also I have put the GlobalHandler class in other package. Here&#39;s my relevant files: 

MainController.java

    package com.spring.practice;
    
    import java.io.IOException;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller
    public class MainController {
    	@RequestMapping(value = &quot;/hello.htm&quot;)
    	public String hello() throws IOException {
    		
    		// render hello.jsp page
    		return &quot;hello&quot;;
    	}
    
    	@RequestMapping(value = &quot;/test.htm&quot;)
    	public String test() throws IOException {
    		
    		//just throw exception to test the exceptionhandler mapping
    		if(true) {
    			throw new IOException(&quot;this is io exception&quot;);
    		}
    		
    		// render hello.jsp page
    		return &quot;hello&quot;;
    	}
    }


GlobalHandler.java

    package com.spring.test;
    
    import java.io.IOException;
    
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.servlet.ModelAndView;
    import org.springframework.web.servlet.config.annotation.EnableWebMvc;
    
    @ControllerAdvice
    @EnableWebMvc
    public class GlobalHandler {
    
    	@ExceptionHandler(IOException.class)
    	public ModelAndView exception(IOException e) {
    		
    		ModelAndView mav = new ModelAndView(&quot;exception&quot;);
    		mav.addObject(&quot;name&quot;, e.getClass().getSimpleName());
    		mav.addObject(&quot;message&quot;, e.getMessage());
    
    		return mav;
    	}
    	
    }

web.xml

    &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;  
    &lt;web-app xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot; xmlns=&quot;http://java.sun.com/xml/ns/javaee&quot; xsi:schemaLocation=&quot;http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd&quot; id=&quot;WebApp_ID&quot; version=&quot;3.0&quot;&gt;  
      &lt;display-name&gt;Hellossss&lt;/display-name&gt; 
       &lt;welcome-file-list&gt;
    		&lt;welcome-file&gt;hello.htm&lt;/welcome-file&gt;
    	&lt;/welcome-file-list&gt;
       &lt;servlet&gt;    
        &lt;servlet-name&gt;spring&lt;/servlet-name&gt;    
        &lt;servlet-class&gt;org.springframework.web.servlet.DispatcherServlet&lt;/servlet-class&gt;    
        &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;      
    &lt;/servlet&gt;    
    &lt;servlet-mapping&gt;    
        &lt;servlet-name&gt;spring&lt;/servlet-name&gt;    
        &lt;url-pattern&gt;*.htm&lt;/url-pattern&gt;    
    &lt;/servlet-mapping&gt;  
    &lt;context-param&gt;
    		&lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
    		&lt;param-value&gt;/WEB-INF/spring-servlet.xml&lt;/param-value&gt;
    	&lt;/context-param&gt;
     
    	&lt;listener&gt;
    		&lt;listener-class&gt;org.springframework.web.context.ContextLoaderListener&lt;/listener-class&gt;
    	&lt;/listener&gt; 
    &lt;/web-app&gt;  

spring-servlet.xml

    &lt;mvc:annotation-driven/&gt; 
     &lt;context:component-scan base-package=&quot;com.spring.practice&quot; /&gt;
    
    	&lt;!-- View resolver --&gt;
    	&lt;bean class=&quot;org.springframework.web.servlet.view.InternalResourceViewResolver&quot;&gt;
    	    &lt;property name=&quot;viewClass&quot; value=&quot;org.springframework.web.servlet.view.JstlView&quot;/&gt;
    		&lt;property name=&quot;prefix&quot;&gt;
    		    &lt;value&gt;/WEB-INF/jsp/&lt;/value&gt;
    		&lt;/property&gt;
    		&lt;property name=&quot;suffix&quot;&gt;
    			&lt;value&gt;.jsp&lt;/value&gt;
    		&lt;/property&gt;
    	&lt;/bean&gt;

exception.jsp

    &lt;html&gt;
    &lt;head&gt;
    	&lt;title&gt;Spring MVC @ControllerAdvice example&lt;/title&gt;	
    &lt;/head&gt;
    &lt;body&gt;
    
    	&lt;h1&gt;Ops! Something went wrong&lt;/h1&gt;
    
    	&lt;b&gt;${name}&lt;/b&gt;:  ${message}
    
    &lt;/body&gt;
    &lt;/html&gt;

hello.jsp

    &lt;html&gt;
    &lt;head&gt;
    	&lt;title&gt;Spring MVC Exception Handling&lt;/title&gt;	
    &lt;/head&gt;
    &lt;body&gt;
    
    	&lt;h1&gt;Spring MVC Exception Handling&lt;/h1&gt;
    
    	&lt;a href=&quot;test.htm&quot;&gt;Click here to test Exception handling&lt;/a&gt;
    
    &lt;/body&gt;
    &lt;/html&gt;

Thank you in advance..


Complete error log

    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server version name:   Apache Tomcat/9.0.34
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server built:          Apr 3 2020 12:02:52 UTC
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Server version number: 9.0.34.0
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: OS Name:               Windows 7
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: OS Version:            6.1
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Architecture:          amd64
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Java Home:             C:\Program Files\Java\jdk1.8.0_181\jre
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: JVM Version:           1.8.0_181-b13
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: JVM Vendor:            Oracle Corporation
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_BASE:         E:\eclipsephoton\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 9.0
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.base=E:\eclipsephoton\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 9.0
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dwtp.deploy=E:\eclipsephoton\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 9.0\endorsed
    May 23, 2020 2:43:10 PM org.apache.catalina.startup.VersionLoggerListener log
    INFO: Command line argument: -Dfile.encoding=Cp1252
    May 23, 2020 2:43:10 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
    INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [C:\Program Files\Java\jdk1.8.0_181\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_181/bin/server;C:/Program Files/Java/jre1.8.0_181/bin;C:/Program Files/Java/jre1.8.0_181/lib/amd64;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_151\bin;C:\Program Files\MySQL\MySQL Server 5.7\bin;C:\Program Files\Java\jdk1.8.0_92\bin;C:\Users\Dell\AppData\Local\Programs\Microsoft VS Code\bin;C:\Program Files\Java\jdk1.8.0_92\bin;C:\Windows\System32;C:\Users\Dell\Downloads\eclipse-jee-photon-R-win32-x86_64 (1)\eclipse;;.]
    May 23, 2020 2:43:10 PM org.apache.coyote.AbstractProtocol init
    INFO: Initializing ProtocolHandler [&quot;http-nio-8085&quot;]
    May 23, 2020 2:43:11 PM org.apache.catalina.startup.Catalina load
    INFO: Server initialization in [1,296] milliseconds
    May 23, 2020 2:43:11 PM org.apache.catalina.core.StandardService startInternal
    INFO: Starting service [Catalina]
    May 23, 2020 2:43:11 PM org.apache.catalina.core.StandardEngine startInternal
    INFO: Starting Servlet engine: [Apache Tomcat/9.0.34]
    May 23, 2020 2:43:15 PM org.apache.jasper.servlet.TldScanner scanJars
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    May 23, 2020 2:43:19 PM org.apache.jasper.servlet.TldScanner scanJars
    INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
    May 23, 2020 2:43:19 PM org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring root WebApplicationContext
    May 23, 2020 2:43:19 PM org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization started
    May 23, 2020 2:43:20 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing Root WebApplicationContext: startup date [Sat May 23 14:43:20 IST 2020]; root of context hierarchy
    May 23, 2020 2:43:20 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-servlet.xml]
    May 23, 2020 2:43:20 PM org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider registerDefaultFilters
    INFO: JSR-250 &#39;javax.annotation.ManagedBean&#39; found and supported for component scanning
    May 23, 2020 2:43:20 PM org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider registerDefaultFilters
    INFO: JSR-250 &#39;javax.annotation.ManagedBean&#39; found and supported for component scanning
    May 23, 2020 2:43:20 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@9bdf4e: defining beans [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,mainController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.web.servlet.view.InternalResourceViewResolver#0]; root of factory hierarchy
    May 23, 2020 2:43:20 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
    INFO: Mapped URL path [/test.htm] onto handler [com.spring.practice.MainController@723fd4ac]
    May 23, 2020 2:43:20 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
    INFO: Mapped URL path [/hello.htm] onto handler [com.spring.practice.MainController@723fd4ac]
    May 23, 2020 2:43:21 PM org.springframework.web.context.ContextLoader initWebApplicationContext
    INFO: Root WebApplicationContext: initialization completed in 1669 ms
    May 23, 2020 2:43:21 PM org.apache.catalina.core.ApplicationContext log
    INFO: Initializing Spring FrameworkServlet &#39;spring&#39;
    May 23, 2020 2:43:21 PM org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet &#39;spring&#39;: initialization started
    May 23, 2020 2:43:21 PM org.springframework.context.support.AbstractApplicationContext prepareRefresh
    INFO: Refreshing WebApplicationContext for namespace &#39;spring-servlet&#39;: startup date [Sat May 23 14:43:21 IST 2020]; parent: Root WebApplicationContext
    May 23, 2020 2:43:21 PM org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions
    INFO: Loading XML bean definitions from ServletContext resource [/WEB-INF/spring-servlet.xml]
    May 23, 2020 2:43:21 PM org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider registerDefaultFilters
    INFO: JSR-250 &#39;javax.annotation.ManagedBean&#39; found and supported for component scanning
    May 23, 2020 2:43:21 PM org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider registerDefaultFilters
    INFO: JSR-250 &#39;javax.annotation.ManagedBean&#39; found and supported for component scanning
    May 23, 2020 2:43:21 PM org.springframework.beans.factory.support.DefaultListableBeanFactory preInstantiateSingletons
    INFO: Pre-instantiating singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@6cc45cf2: defining beans [org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping#0,org.springframework.format.support.FormattingConversionServiceFactoryBean#0,org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter#0,mainController,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.web.servlet.view.InternalResourceViewResolver#0]; parent: org.springframework.beans.factory.support.DefaultListableBeanFactory@9bdf4e
    May 23, 2020 2:43:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
    INFO: Mapped URL path [/test.htm] onto handler [com.spring.practice.MainController@63e98fde]
    May 23, 2020 2:43:21 PM org.springframework.web.servlet.handler.AbstractUrlHandlerMapping registerHandler
    INFO: Mapped URL path [/hello.htm] onto handler [com.spring.practice.MainController@63e98fde]
    May 23, 2020 2:43:21 PM org.springframework.web.servlet.FrameworkServlet initServletBean
    INFO: FrameworkServlet &#39;spring&#39;: initialization completed in 236 ms
    May 23, 2020 2:43:21 PM org.apache.coyote.AbstractProtocol start
    INFO: Starting ProtocolHandler [&quot;http-nio-8085&quot;]
    May 23, 2020 2:43:21 PM org.apache.catalina.startup.Catalina start
    INFO: Server startup in [10,808] milliseconds
    May 23, 2020 2:43:24 PM org.apache.catalina.core.StandardWrapperValve invoke
    SEVERE: Servlet.service() for servlet [spring] in context with path [/Hellosss] threw exception
    java.io.IOException: this is io exception
    	at com.spring.practice.MainController.test(MainController.java:22)
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	at java.lang.reflect.Method.invoke(Method.java:498)
    	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
    	at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
    	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
    	at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
    	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
    	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
    	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    	at java.lang.Thread.run(Thread.java:748)


Error on browser

    HTTP Status 500 – Internal Server Error
    Type Exception Report
    
    Message this is io exception
    
    Description The server encountered an unexpected condition that prevented it from fulfilling the request.
    
    Exception
    
    java.io.IOException: this is io exception
    	com.spring.practice.MainController.test(MainController.java:22)
    	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    	java.lang.reflect.Method.invoke(Method.java:498)
    	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710)
    	org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414)
    	org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402)
    	org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771)
    	org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716)
    	org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647)
    	org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
    	javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
    	org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    Note The full stack trace of the root cause is available in the server logs.









</details>


# 答案1
**得分**: 0

我认为您需要将您的@ControllerAdvice类包含在包扫描中并尝试一下?否则,请将您的com.spring.test.GlobalHandler类放在正确的包中(com.spring.**practice**而不是com.spring.**test**)。

    &lt;context:component-scan base-package=&quot;com.spring.practice&quot; /&gt;

<details>
<summary>英文:</summary>

I think you need to include your @ControllerAdvice class to the package-scan and have a try? Otherwise, place your com.spring.test.GlobalHandler class inside the right package (com.spring.**practice** instead of com.spring.**test**).

    &lt;context:component-scan base-package=&quot;com.spring.practice&quot; /&gt;

</details>



huangapple
  • 本文由 发表于 2020年5月3日 17:33:39
  • 转载请务必保留本文链接:https://java.coder-hub.com/61572319.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定