我有一个使用Spring Boot的Rest控制器
@RestController
@RequestMapping("/api")
public class TeamController {
@RequestMapping(value = "/getmember/{memberId}",method = {RequestMethod.GET})
public ResponseEntity<TeamMember> findmember(@PathVariable("memberId") int theId){
TeamMember teamMember = teamService.findMember(theId);
if( null == teamMember) {
throw new TeamMemberNotFoundException();
}
return new ResponseEntity<TeamMember>(teamMember,HttpStatus.OK);
}
我的特例课
@ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "Member not found")
public class TeamMemberNotFoundException extends RuntimeException {
// constructor
}
我的全局异常处理程序注释使用@Controlller建议
@ControllerAdvice
public class TeamMemberNotFoundExceptionHandler extends ResponseEntityExceptionHandler {
@ExceptionHandler(TeamMemberNotFoundException.class)
public ResponseEntity<TeamMemberNotFoundErrorResponse> handleException(TeamMemberNotFoundException e) {
TeamMemberNotFoundErrorResponse t = new TeamMemberNotFoundErrorResponse(HttpStatus.NOT_FOUND.value(),"Dude he doesnt exist wake up",System.currentTimeMillis());
return new ResponseEntity<TeamMemberNotFoundErrorResponse>(t, HttpStatus.NOT_FOUND);
}
}
当我直接在控制器内部使用异常处理程序代码时,它似乎可以工作,但在用@controller Advice注释的类中使用异常处理程序时,根本不会调用它,我会得到默认的500内部服务器错误。我附上了我的项目目录结构的图片。我很努力,但无法解决这个问题
我的项目目录strcuure
这可能是因为如果不指定,spring会使用约定而不是配置。spring检查的其中一个包是“例外”包,请尝试将ControllerAdvice放在那里。如果不起作用,请尝试在应用程序类中指定ControllerAdvice的包。
使用最新版本的SpringBoot(1.1.3. RELEASE),我正在尝试一个非常简单的rest应用程序。我有一个异常处理程序来处理由错误输入引起的验证错误。如果我发出POST请求,异常处理程序会触发。但是,如果我有补丁或放置请求,它不会触发。可能会发生什么? 异常处理程序类 主要应用类 域类 repository类 此POST请求已正确处理。网站应该是URL,在这个请求中不是,因此,它正确地
我的RestController类: 我的ExceptionHandler: 例外响应:
我有一个带post请求的控制器。我试图用一个简单的NotNull注释验证POJO。我正在使用ControllerAdvice来处理异常。 所以我尝试使用它,但当我启动应用程序时,我得到了以下信息: 因此,我想为BindException创建自己的处理程序,但当我为BindException类创建ExceptionHandler时,spring应用程序不会启动。如果我注释掉handleBindExc
我有以下情况,我试图看看是否有解决方案: 两个Spring服务调用必须并行进行(一个是现有的服务调用/逻辑,另一个是新添加的服务调用) 然而,一条快乐的道路应该是直截了当的,当涉及到服务发出的错误时,应该遵守以下规则: > 如果其中只有一个失败,则通过另一个服务(异步)记录错误,并且API只返回成功服务的结果--这可以通过相应的线程来完成。 我的问题是,因为这些服务返回某个对象的列表,即使我使用并
我想为我的应用程序使用自定义异常处理程序。但是,它不能正常工作。 ApplicationExceptionHandler.java authFilterRegistration.java ErrorEntity.java 使用这些代码,我希望有一个像这样的异常错误 这是的实例,但我得到了以下输出 从示例中可以清楚地看出,我无法完全覆盖默认的Java异常。仅更改成功的消息部分。我错过什么了吗?
我试图根据Spring的RequestMapping注释方法上存在的注释来实现一些逻辑。 所以我在我的方法中有一个实例,我想问Spring“给我一个方法,它将被调用来处理这个请求”,所以我可以使用反射API来询问我的注释是否存在或不存在,所以我可以更改处理。 有没有什么简单的方法可以从Spring MVC获取这些信息?