JAXBがパラメータ値の文字列を自分のオブジェクトに変換するために使用すると思われるfromStringメソッドを使用して自分のクラスを作成しました。しかし、このfromStringメソッドの中には、例外を吹き飛ばすtry catchブロックがあります。以下のように。JAX-RS例外マッパーは、パラメータ変換時にスローされる例外を処理しません。
@Component
@Provider
public class CannotConvertAnimalExceptionHandler implements ExceptionMapper<CannotConvertAnimalException>
ものがあることである私のリソースの方法で:
public class Animal{
public static Animal fromString(final String input){
try{
...
}catch(IllegalArgumentException ae){
throw new CannotConvertAnimalException(); //this is my custom exception
}
}
}
そしてその後、私は次のようなCannotConvertAnimalExceptionためのマッパーを持っています。私は、それは動物に変換するパラメータ文字列がCannotConvertAnimalExceptionをスローしたときに、私の、カスタマー例外マッパーがそれを処理しないことが判明したデータ型動物
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response showAnimalInfo(Animal animal){....}
を使用しています。代わりに、ParamException.QueryParamExceptionをスローして、QueryParamExceptionハンドラに渡して応答を処理します。
変換が悪くなったときやCannotConvertAnimalExceptionがスローされたときに正しいマッパーがそれを処理するようにする方法はありますか?