2017-07-22 7 views
0

妥当性検査のエラーを例外マッパーにマップしようとしましたが、キャッチアップしていません。ページには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を検証する必要があります。誰でも助けてくれますか?

+0

Bean検証の場合、JerseyはExceptionよりも具体的なValidationExceptionにExceptionMapperを使用します。だから、あなたは呼ばれていないのです。 –

+0

実際には、私はそれを把握し、問題を解決するには プロパティ(BV_SEND_ERROR_IN_RESPONSE、true)を追加して解決しました。 ありがとうございます。 –

+0

まだ私は401,403,405エラーを検出しませんでした。 –

答えて

0

getClassesオーバーライドを持つApplicationクラスがありますか?その場合は、休憩サービスで公開するクラスのセットに例外マッパーを追加します。それ以外の場合は、パッケージスキャンを使用している場合は、@Providerアノテーションを追加します。

+0

コメントか回答ですか? –

+0

@RahulSingh編集で回収しました – vikarjramun

+0

私の評判は元の投稿にコメントを追加できませんでした。だから私はこの質問に答えを加えて貢献したかったのです。 –

関連する問題