Hi
On 22/12/11 16:35, ZenEighth wrote:
<<As far as I can tell, I can't set the status code if I just return a java
object.  What is the best strategy for returning an object AND setting the
status code?>>

David,
Here is what works for me. I return my custom java object (as code supports
REST and SOAP too), and set the Response code like here:

     //JAX-RS and JAX-WS context
     @javax.ws.rs.core.Context
     MessageContext resp;


     private void setHTTPResponseCode(int statusCode) {

         // HttpServletResponse.SC_CREATED-->  Status code (201)
         // HttpServletResponse.SC_NO_CONTENT -->  Status code (204)
         // HttpServletResponse.SC_BAD_REQUEST  -->  Status code (400)
         // HttpServletResponse.SC_UNAUTHORIZED         -->  Status code (401)
        // HttpServletResponse.SC_NOT_FOUND     -->  Status code (404)
        // HttpServletResponse.SC_CONFLICT     -->  Status code (409)
         HttpServletResponse r1 = resp.getHttpServletResponse();
         r1.setStatus(statusCode);
     }

Then, I call this method in my methods and set the appropriate Status Code,
this overrides the default 200 (always) when we return our own java object.

Works great for me.

Hope this helps.

Sergey, if you see any issues with this, do let us know :)

That method will probably not work on the JAX-WS call though :-), but as far as JAX-RS is concerned, yea, setting the status directly on the out servlet handler is yet another option, thanks for sharing it

Sergey

Thanks!


--
View this message in context: 
http://cxf.547215.n5.nabble.com/JAX-RS-send-a-specific-object-in-response-set-status-code-tp5086867p5095044.html
Sent from the cxf-user mailing list archive at Nabble.com.


--
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Reply via email to