java - JAX-RS exception mapper does not handle the exception that is thrown when doing parameter conversion? -


i created own class fromstring method believe jaxb use convert parameter value string object. however, inside fromstring method, have try catch block bubbles exception. following.

public class animal{     public static animal fromstring(final string input){           try{              ...          }catch(illegalargumentexception ae){              throw new cannotconvertanimalexception(); //this custom exception          }      } } 

and have mapper cannotconvertanimalexception following:

@component @provider public class cannotconvertanimalexceptionhandler implements exceptionmapper<cannotconvertanimalexception> 

the thing in resource method. use data type animal

@get @produces({mediatype.application_xml, mediatype.application_json}) public response showanimalinfo(animal animal){....} 

it turns out when parameter string converted animal throws cannotconvertanimalexception custome exception mapper not handle it. goes on throw paramexception.queryparamexception instead , gives queryparamexception handler handle response.

do guys have idea how make when conversion goes bad, , when cannotconvertanimalexception gets thrown, correct mapper handles it?

ok found answer this. turns out whatever exception throw when trying convert string object wrapped inside queryparamexception , handled queryparamexception exceptionmapper (if have one). 1 way around identify exception wrapped queryparamexception , use kind of map match cause of queryparamexception correct handler

map<exception, exceptionmapper> mapper; 

and

catch(exception e){     exmapper = mapper.get(exception.getcause); } 

of course need load yor map right exception , mapper. having spring injects map variable.


Comments

Popular posts from this blog

python - Scipy curvefit RuntimeError:Optimal parameters not found: Number of calls to function has reached maxfev = 1000 -

c# - How to add a new treeview at the selected node? -

java - netbeans "Please wait - classpath scanning in progress..." -