have it injected as a thread-safe Context: private @Context HttpHeaders headers;
Cheers, Sergey On Thu, Jun 2, 2011 at 4:46 PM, Rice Yeh <[email protected]> wrote: > Hi Sergey, > I do not understand your solution. My exception mapper is like the > following: > > public class MyExceptionMapper extends ExceptionMapper<Throwable> > { > public Response toResponse(Throwable throwable) { > if (the throwable comes from a matched method provide > application/json) > map throwable to json > else if (.... provide text/html) > map throwable to html > .... > } > } > > Where should put the HttpHeaders in MyExceptionMapper? > > Regards, > Rice > > On Thu, Jun 2, 2011 at 6:09 PM, Sergey Beryozkin <[email protected]>wrote: > >> Hi Rice >> >> On Thu, Jun 2, 2011 at 10:55 AM, Rice Yeh <[email protected]> wrote: >> > I have a feeling that the spec of JAX-RS is kind of weak on exception >> > handling. It regulates a lot of tags for matching a method to handle a >> > request based on path, consume, provide, ... But once an exception >> happen, >> > all these mechanism are gone. I have to judge what kind of content to >> return >> > in the method toResonse(Throwable...) based on very little information >> > available. >> > >> >> You can get @HttpHeaders injected and get the properly sorted list of >> acceptable media types, >> thus if you have a single method with @Produces having multiple values >> then you can use the first *known* value in the list of acceptable >> media types is the one which is expected by the client. >> Ex, if you know that @Produces has html/xml/json and you get a sorted >> list starting with json then it's json. If the lists starts from the >> type not available on @Produces then you need to skip it. >> >> Cheers, Sergey >> >> > Rice >> > >> > On Thu, Jun 2, 2011 at 5:32 PM, Rice Yeh <[email protected]> wrote: >> > >> >> Hi, >> >> I write a ExceptionMapper to handle exception. In the ExceptionMapper, >> I >> >> have a need to know the matched response type to return different >> response. >> >> For example, if the the matched response type is html, it returns a html >> >> response and if the matched response is json, it returns json. How do I >> do >> >> this? >> >> >> >> Regards, >> >> Rice >> >> >> > >> >> >> >> -- >> Sergey Beryozkin >> >> Application Integration Division of Talend >> http://sberyozkin.blogspot.com >> > -- Sergey Beryozkin Application Integration Division of Talend http://sberyozkin.blogspot.com
