JAX-RS 2.0 における、Bean Validation 1.1 の仕様、使い方イロハ、validationエラーの出力のカスタマイズの仕方などの勉強メモ。
- The Java Community Process(SM) Program - JSRs: Java Specification Requests - detail JSR# 349
- Hibernate Validator - Hibernate Validator
- Bean Validation: Bean Validation 1.1 Specification
- 私のBeanValidationの使い方(Java EE Advent Calendar 2013) — 裏紙
- BeanValidationの組み込みアノテーション - シュンツのつまづき日記
- JSR 303 Bean Validationで遊んでみるよ! - Yamkazu's Blog
Jersey:
RESTEasy:
Bean Validationでのエラーメッセージの国際化:
- JAX-RS Bean Validation Error Message Internationalization | Java Code Geeks
JerseyでのValidationエラー出力のカスタマイズ:
- java ee - Binding JAX-RS bean validation error messages to the view - Stack Overflow
- Handling JAX-RS and Bean Validation Errors with MVC | tl;dr
RESTEasyでのValidationエラー出力のカスタマイズ:
- java - How to catch RESTEasy Bean Validation Errors? - Stack Overflow
- java - RestEasy - Parameters Binding - Validation and Errors - EJB - Stack Overflow
- RESTEasy bean validation using hibernate validator provider | How To Do In Java
- Exception handling in JAX-RS RESTEasy with ExceptionMapper | How To Do In Java
→Jerseyも、RESTEasyも、そして結局はJAX-RS 2.0の仕様として、ExceptionMapperで javax.validation.ValidationException か javax.validation.ConstraintViolationException をカスタマイズすればOKっぽい。
なお、ConstraintViolationException は ValidateException から派生しているが、以下のような区別があるらしい。
- ConstraintViolationException はあくまでもvalidationとしてチェックエラーになった場合の例外。
- ConstraintViolationException 「以外の」ValidationException およびその派生クラスは、そもそもvalidation処理の途中で、アノテーションが間違ってたりするなど、何かランタイムで不測事態が発生した場合の例外。
正確なところは JAX-RS 2.0 の最終仕様の、"7.6 Validation and Error Reporting" を参照。
その他参考記事:
- JAX-RS and Bean Validation | Java.net
- Java Advent Calendar: Integrating Bean Validation with JAX-RS in Java EE 6
プレーンテキスト形式でダウンロード