【发布时间】:2015-03-29 18:45:33
【问题描述】:
我们使用 Spring Boot 进行集成测试,使用 RESTEasy 进行 REST URL。我为 BadRequestException 配置了一个 ExceptionMapper,因为我为发送错误请求时引发的异常添加了一个测试用例。为了抑制结果引发的 RESTEasy 异常,我添加了一个扩展 RESTEasy 的 ExceptionMapper 的 BadRequestExceptionHandler。我使用的是“@SpringBootApplication”,但添加了“@ComponentScan”,includeFilters 将类型设置为 ANNOTATION 并将值设置为 Provider.class。我已将我的处理程序类标记为@Component,因此 Spring 能够创建 bean(自动装配工作)但 RESTEasy 没有选择此处理程序,我继续在日志中看到异常。
谁能指出我做错了什么?
@Provider
@Component
public class BadRequestExceptionHandler implements ExceptionMapper<BadRequestException> {
@Override
public Response toResponse(BadRequestException exception) {
return Response.status(Response.Status.BAD_REQUEST)
.entity(exception.getMessage())
.build();
}
}
@SpringBootApplication
@ComponentScan(includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, value = Provider.class))
public class TestApplication extends SpringBootServletInitializer {
...
}
谢谢,
稻谷
【问题讨论】:
标签: spring spring-boot resteasy