The service I'm using requires that we "login" and maintain the session.
(Yuck, I know!)

I can do this using regular java and CXF, but can't figure out the right way
with Camel & CXF. 

This works with Java / CXF. 

   ((BindingProvider)
port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,
true);

I've tried adding a header: 

    <setHeader headerName="org.apache.cxf.message.Message.MAINTAIN_SESSION">
      <constant>true</constant>
    </setHeader>

and using a processor:

public class SessionProcessor implements Processor {
  @Override
  public void process(Exchange exchange) throws Exception {
    // set up the response context which force start document
    Map<String, Object> map = (Map)
exchange.getOut().getHeader(Client.REQUEST_CONTEXT);
    if (map == null) {
      map = new HashMap<String, Object>();
      exchange.getOut().setHeader(Client.REQUEST_CONTEXT, map);
    }
    map.put(BindingProvider.SESSION_MAINTAIN_PROPERTY, true);
  }

but, I think I'm doing it too late. 



--
View this message in context: 
http://camel.465427.n5.nabble.com/How-to-Maintain-Session-with-CXF-tp5760786.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to