users@jersey.java.net

Error pages when status != 2xx

From: Rod Fitzsimmons Frey <rfrey_at_attassa.com>
Date: Sun, 30 Nov 2008 21:18:02 -0700

Hi there. I'm having some trouble wrapping my head around ResponseBuilder
and how it handles error flow conditions. My apologies if this question
belongs on another list: I'm a refugee from rails and I've not quite
internalized the various boundaries.

 

My problem is that I'd like to respond to a REST request with a particular
error code and nothing else, but I can't get rid of the default Glassfish
HTML error page. I've got a @Post method that returns the created object,
which is annotated with @XMLRootObject. Works like a champ for the regular
flow, but for duplicate create requests I tried to send a 409 Conflict:

 

    if(userDAO.findUserByEmail(email) != null) {

                throw new WebApplicationException(409);

    }

 

Which when invoked with curl gave me the 409 as desired, plus a big XHTML
error page. I have also tried changing the return type to a Response and
using

 

        return Response.noContent().status(409).build();

        return Response.status(409).entity("").build();

        return Response.status(409).build();

 

all of which return the HTML error page. I've tried sending 409s to a
blank.html page in the web.xml but that didn't work either (I found out why
in an archive search here:
https://jersey.dev.java.net/servlets/ReadMsg?listName=users
<https://jersey.dev.java.net/servlets/ReadMsg?listName=users&msgNo=484>
&msgNo=484

 

I have a feeling this is a RTFM moment but I can't find the appropriate M to
FR. Any help would be greatly appreciated.

 

Rod