@controlleradvice给定错误:当前线程的作用域“会话”未处于活动状态

suzh9iv8  于 2021-07-03  发布在  Java
关注(0)|答案(1)|浏览(331)

我面临一个spring mvc注解@controlleradvice的问题。我有2个控制器类:usergapscontroller和registrationbasecontroller这两个类都使用
@控制器
@控制器建议
@自动连线会话对象
@作用域(webapplicationcontext.scope\u会话)
@在方法级别使用@modeldattribute时,必须使用controlleradvice注解。所以我在两个类中都有一个用@modeldattribute注解的方法。现在的问题是,当我在usergapscontroller.java中使用@controlleradvice时,应用程序运行正常,当我在registrationbasecontroller.java中使用@controlleradvice时,它在运行时出现以下错误:
创建名为“org.springframework.web.servlet.mvc.method.annotation.requestmappinghandler:调用init方法”的bean时出错failed:nested exceotion is org.springframework.beans.factory.beancreationexception:创建名为“usergapscontroller”的bean时出错:当前线程的作用域“session”不活动
这个错误的原因是什么,我们不能有2个@controlleradvice注解类吗?当我在registrationbasecontroller.java中注解@controlleradvice时,它执行得很好。

uxh89sit

uxh89sit1#

你想要多个 @ControllerAdvice 处理不同异常的类。
你可以像这样使用控制器上的命令

@ControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
public class RegistrationExceptionHandler {

    //...

}

@ControllerAdvice
@Order(Ordered.LOWEST_PRECEDENCE) // or any int value
public class UserGapsExceptionHandler {

    //...

}

相关问题