Hi,

sorry, yes it should be the Marshal stage, and yes, this is how you can 
configure the out interceptor.
If JAXRS filters were used then they would be linked to inside 
<jaxrs:providers>...

cheers, Sergey



Thanks Sergey, would this be configured as follows:

<jaxrs:server id="servicesREST" address="/rest">
       <jaxrs:serviceBeans>
           <ref bean="servicesSEI" />
       </jaxrs:serviceBeans>

       <jaxrs:outInterceptors>
           <ref bean="testIntercepter"/>
       </jaxrs:outInterceptors>

</jaxrs:server>
<bean id="testIntercepter"
class="com.zag.services.gateway.handler.ResponseInterceptor"/>

Interceptor logic

public class ResponseInterceptor extends AbstractPhaseInterceptor<Message> {
   private static final Log log =
LogFactory.getLog(ResponseInterceptor.class);

   public ResponseInterceptor() {
//UNMARSHALL applies only to incoming chains
       super(Phase.MARSHAL);
   }

   public void handleMessage(Message msg) {
       log.info("*****Magic Happens Here ****");

   }

}






Sergey Beryozkin-2 wrote:

In JAXRS & JAXWS case a CXF out interceptor would need to modify the
headers directly on the outbound message, don't remember at the moment
the property key, check please Message class if needed..., in JAXRS only
dealing with Response would do

Cheers, Sergey



-----Original Message-----
From: Sergey Beryozkin [mailto:[email protected]] Sent: 17 June 2009 21:12
To: [email protected]
Subject: RE: Best way to append logic to response header

Hi

One way is to register a ResponseHandler JAX-RS filter :
http://cwiki.apache.org/CXF20DOC/jax-rs.html#JAX-RS-Filters

You can substitute a Response to be serialized with your own one, for
ex, you can create a new one and copy the provided one into it and then
add few headers or update  the entity as needed.

A similar option is to register a CXF out interceptor at the stage
UNMARSHAL, you can get a Response from a message like this :

Response r = message.getExchange().get(Response.class);

create a new one and reset it on the exchange. This would work for
JAXRS&JAXWS

hope it helps, Sergey
-----Original Message-----
From: mieke [mailto:[email protected]] Sent: 17 June 2009 20:11
To: [email protected]
Subject: Best way to append logic to response header


Set up - CXF, Spring, JAX-RS

I have some RESTfull services that return various data formats (xml,
json). I would like to add some additional data to the response header. What
is
the best approach to doing this?

String context file has the following ...
<jaxrs:server id="servicesREST" address="/rest">
  <jaxrs:serviceBeans>
    <ref bean="servicesSEI" />
  </jaxrs:serviceBeans>
</jaxrs:server>

My test method in the impl

    @GET
    @Produces("application/xml")
    @Path("/upper/{string}")
    public String toUpper(@PathParam("string") String string) {
return "<test>" + string.toUpperCase() + "</test>" ;

    }


Appreciate your help.

Thanks,

Mieke



--
View this message in context:
http://www.nabble.com/Best-way-to-append-logic-to-response-header-tp2408
0075p24080075.html
Sent from the cxf-user mailing list archive at Nabble.com.




--
View this message in context: 
http://www.nabble.com/Best-way-to-append-logic-to-response-header-tp24080075p24083319.html
Sent from the cxf-user mailing list archive at Nabble.com.


Reply via email to