Hi,

I found that the problem is not caused by my interceptor but the problem is
in my service which creates message and adds wsa:MessageID. If I do not add
MessageID to SOAP header, it works correctly. But if MessageID is added, all
previous MessageID (and also other headers added by interceptor) are
cumulated. The same problem (MessageID cumulating) occurs even without
interceptor.

Snippet of class which sends messages where MessageID is cumulated from
previous messages:

//@WebService generated by CXF (wsdl2java)
@Inject
private UpdateService updateService;

public void updatesSender(){
    ((BindingProvider)
updateService).getRequestContext().put("thread.local.request.context",
"true");
    String messageId = idGenerator.nextId();
    try {
        addSoapHeaderMassegeId((BindingProvider) updateService, messageId);
    }
    UpdateMessageType message = messageCreator.getMessage();  //creates
message for sending
    UpdateResponseHandler handler = new UpdateResponseHandler(message,
messageId);
    updateService.updateAsync(message, handler);
}

public static void addSoapHeaderMassegeId(BindingProvider port, String
messageID) throws JAXBException {
    List<Header> headers = getHeaders(port);
    Header messageIDHeader = new Header(new
QName("http://www.w3.org/2005/08/addressing";, "MessageID", "wsa"),
messageID, new JAXBDataBinding(String.class));
        headers.add(messageIDHeader);
        port.getRequestContext().put(Header.HEADER_LIST, headers);
}

public static List<Header> getHeaders(BindingProvider port) {
    Map<String, Object> messageContext = port.getRequestContext();
    if (messageContext == null) {
        return null;
    }
    List<Header> headers = CastUtils.cast((List<?>)
messageContext.get(Header.HEADER_LIST));
    if (headers == null) {
        return new ArrayList<Header>();
    }
    return headers;
}




--
View this message in context: 
http://cxf.547215.n5.nabble.com/All-previous-soap-headers-in-response-message-tp5764870p5765098.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to