我试图将我的验证错误映射到异常映射器,但它没有赶上。页面显示HTTP状态400 - 错误请求。 下面是我的映射器代码。
@Provider
public class UnexpectedExceptionMapper implements
ExceptionMapper<Exception> {
@Override
public Response toResponse(Exception e) {
return Response
.status(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())
.type(MediaType.APPLICATION_JSON_TYPE)
.entity("validation Exception : " + e.getMessage() + "error code :" + Response.Status.INTERNAL_SERVER_ERROR.getStatusCode())
.build();
}
以下是资源文件代码。
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public Settings updateSettings(@Valid SettingsForm settingsForm) {
return SettingsDAO.updateSettings(settingsForm);
}
我正在使用Hibernate validator.Form类如下:
public class SettingsForm {
@NotNull
private int sensorLogCollectionInterval;
@NotNull
private int sensorConnectionErrorCount;
@NotNull
private boolean analysisServerEnabled;
@Pattern(regexp = "^(https?:\\/\\/)?((\\w+\\.)?\\w+\\.\\w+|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?)(\\/)?([^\\.\\s\\,])*$")
private String analysisServerUrl;
@Size(min = 1, max = 20)
private String analysisServerCompanyId;
//getters and setter//
}
我需要将erros验证为json。任何人都可以帮助我。
答案 0 :(得分:0)
你有一个带有getClasses覆盖的Application类吗?如果是这样,请将Exception映射器添加到要在Rest服务中公开的类集。否则,如果您正在使用包扫描,则添加@Provider注释。