妥当性検査のエラーを例外マッパーにマップしようとしましたが、キャッチアップしていません。ページにはHTTPステータス400 - Bad Requestが表示されます。下の が私のマッパーコードです。ジャージ - 例外Mapperは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();
}
以下はリソースファイルのコードです。私は休止状態validator.Formクラスを使用していた
@PUT
@Consumes(MediaType.APPLICATION_JSON)
public Settings updateSettings(@Valid SettingsForm settingsForm) {
return SettingsDAO.updateSettings(settingsForm);
}
は以下の通りです:
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//
}
は、私は、JSONとしてerrosを検証する必要があります。誰でも助けてくれますか?
Bean検証の場合、JerseyはExceptionよりも具体的なValidationExceptionにExceptionMapperを使用します。だから、あなたは呼ばれていないのです。 –
実際には、私はそれを把握し、問題を解決するには プロパティ(BV_SEND_ERROR_IN_RESPONSE、true)を追加して解決しました。 ありがとうございます。 –
まだ私は401,403,405エラーを検出しませんでした。 –