小编dae*_*nio的帖子

Spring Rest ErrorHandling @ControllerAdvice/@Valid

我在REST控制器中一起使用@ControllerAdvice@Valid注释时遇到了麻烦.

我有一个休息控制器声明如下:

@Controller
public class RestExample {

    ...

    /**
     * <XmlRequestUser><username>user1</username><password>password</password><name>Name</name><surname>Surname</surname></XmlRequestUser>
     * curl -d "@restAddRequest.xml" -H "Content-Type:text/xml" http://localhost:8080/SpringExamples/servlets/rest/add
     */
    @RequestMapping(value="rest/add", method=RequestMethod.POST)
    public @ResponseBody String add(@Valid @RequestBody XmlRequestUser xmlUser) {
        User user = new User();
        user.setUsername(xmlUser.getUsername());
        user.setPassword(xmlUser.getPassword());
        user.setName(xmlUser.getName());
        user.setSurname(xmlUser.getSurname());

        // add user to the database
        StaticData.users.put(xmlUser.getUsername(), user);
        LOG.info("added user " + xmlUser.getUsername());

        return "added user " + user.getUsername();
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个ErrorHandler类:

@ControllerAdvice
public class RestErrorHandler extends ResponseEntityExceptionHandler {

    private static Logger LOG = Logger.getLogger(RestErrorHandler.class);


    @ExceptionHandler(RuntimeException.class)
    public ResponseEntity<Object> …
Run Code Online (Sandbox Code Playgroud)

java rest error-handling spring

12
推荐指数
1
解决办法
1万
查看次数

标签 统计

error-handling ×1

java ×1

rest ×1

spring ×1