Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异常处理程序不使用';t使用@ResponseStatus中的值_Java_Spring - Fatal编程技术网

Java 异常处理程序不使用';t使用@ResponseStatus中的值

Java 异常处理程序不使用';t使用@ResponseStatus中的值,java,spring,Java,Spring,我有以下控制器建议来处理我的应用程序中的全局异常: @ControllerAdvice public class ExceptionHandlingController { // Convert a predefined exception to an HTTP Status code @ResponseStatus(value=HttpStatus.BAD_REQUEST) // 400 @ExceptionHandler(ConstraintViola

我有以下控制器建议来处理我的应用程序中的全局异常:

@ControllerAdvice
public class ExceptionHandlingController {

      // Convert a predefined exception to an HTTP Status code
      @ResponseStatus(value=HttpStatus.BAD_REQUEST)  // 400
      @ExceptionHandler(ConstraintViolationException.class)
      public void ConstraintViolationExceptionHandler() {
          //Nothing to do
      }
}
下面的代码是控制器,它尝试将对象保存到db(在服务层中)。对象所属的类具有失败的注释

@RequestMapping(value = "/signup", method = RequestMethod.POST)
public void create(@RequestBody CustomUserDetails user, HttpServletResponse response) {
    logger.debug("User signup attempt with username: " + username);
    userDetailsServices.saveIfNotExists(user);
}
我希望客户端在抛出ConstraintViolationException时收到400响应

当方法返回
void
时,不返回响应。当我更改它
String
并返回一个随机文本时,返回404响应

{
  "timestamp": 1495489172770,
  "status": 404,
  "error": "Not Found",
  "exception": "javax.validation.ConstraintViolationException",
  "message": "Validation failed for classes [security.model.CustomUserDetails] during persist time for groups [javax.validation.groups.Default, ]\nList of constraint violations:[\n\tConstraintViolationImpl{interpolatedMessage='must match \"^(?!.*\\..*\\..*)[A-Za-z]([A-Za-z0-9.]*[A-Za-z0-9]){8,15}$\"', propertyPath=username, rootBeanClass=class com.boot.cut_costs.security.model.CustomUserDetails, messageTemplate='{javax.validation.constraints.Pattern.message}'}\n]",
  "path": "/signup"
}
如何使此返回成为为
@ExceptionHandler
定义的简单错误请求消息


注意
ConstraintViolationExceptionHandler
被命中

你能发布包含注释的控制器吗?我添加了控制器代码。你很可能会得到500,因为spring假设当
@controller
注释类有一个
@RequestMapping
返回字符串的方法时,该字符串是视图的名称(失败的视图查找结果是500错误)。您正在尝试构建rest端点吗?是的,我是。我犯了一个错误。返回404。我更新了帖子。ConstraintViolationExceptionHandler真的什么都不做吗?看来你还没有提供一切。假设您正在将一个异常映射到某个对象并返回它,该异常被序列化为您提供的json。您可以发布包含注释的控制器吗?我添加了控制器代码。您很可能会得到一个500,因为当
@controller
注释的类具有
@RequestMapping
返回一个字符串,该字符串是视图的名称(失败的视图查找结果是一个500错误)。您正在尝试构建rest端点吗?是的,我是。我犯了一个错误。返回404。我更新了帖子。ConstraintViolationExceptionHandler真的什么都不做吗?看来你还没有提供一切。假设您正在将异常映射到某个对象并返回它,该对象被序列化为您提供的json