You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by kav m <ka...@med.ge.com> on 2009/11/19 10:21:57 UTC

Re: [jira] Commented: (CAMEL-1994) WS-Adressing: No headers in the respose, [MAPs retrieved from message null]

Hi,

I am having a POJO based camel-cxf service endpoint with ws-addressing
enabled and on upgrading to camel-cxf 2.0.0, Soap headers ceased to show up
in the response. With the help of this thread, I switched to using
camel-cxf-2.1-SNAPSHOT and am now able to see soap headers in the response.
My issues is that one particular header (i.e. Action) has the same value in
the response as it had in the request i.e. it is just being echoed back.

My request soap headers are:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:b="http://docs.oasis-open.org/wsn/b-2"
xmlns:rim="urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0"
xmlns:add="http://www.w3.org/2005/08/addressing">
   <soapenv:Header>
<add:Action>http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeRequest</add:Action>
<add:MessageID>982dcdce8-8e84-9abedc-8443-48fd83bca9319</add:MessageID>
</soapenv:Header>
.
.
.
The soap headers in my response are:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Header>
      <Action
xmlns="http://www.w3.org/2005/08/addressing">http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeRequest</Action>
      <MessageID
xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:2208b69a-51c7-41a6-a092-4a1e33425f85</MessageID>
      <RelatesTo
xmlns="http://www.w3.org/2005/08/addressing">982dcdce8-8e84-9abedc-8443-48fd83bca9319</RelatesTo>
   </soap:Header>
.
.
.
As you can see, 2 of the response headers [MessageID and RelatesTo] are
having proper values, but the 'Action' header is echoing the value which
came in the request.

I am attaching my wsdl which defines the values for Action.

I tried to force the correct value for Action in my Processor as follows:
                List<SoapHeader> soapHeadersList =
(List<SoapHeader>)exchange.getProperty("soapHeaderList");
                SoapHeader oldActionHeader = soapHeadersList.get(0);                
                SoapHeader newActionHeader = null;
                Iterator<SoapHeader> iter = soapHeadersList.iterator();
                while (iter.hasNext()) {
                    Element header = (Element)iter.next().getObject();
                    String headerLocalName = header.getLocalName();
                    if (headerLocalName.equalsIgnoreCase("Action")) {
                        String requestType =
header.getFirstChild().getNodeValue();
                        debug("requestType = [" + requestType + "]");
                        String responseType =
"http://docs.oasis-open.org/wsn/bw-2/NotificationProducer/SubscribeResponse";
                        header.getFirstChild().setNodeValue(responseType);
                        header.getFirstChild().setTextContent(responseType);
                       newActionHeader = new
SoapHeader(oldActionHeader.getName(),header);
                      
newActionHeader.setDirection(Direction.DIRECTION_OUT);
                    }                     
                }
//replace the old Action Header with the new Action Header
                soapHeadersList.set(0, newActionHeader);  
                exchange.getOut().setHeader(Header.HEADER_LIST,
soapHeadersList);

When I debug, I can see the correct value for Action in the exchange, but my
soapUI client still outputs the old value for Action.

Could you help me figure out whats going wrong or how can I replace the
value of a soapHeader for response.

Thanks a lot for your help.

~Kavita



JIRA jira@apache.org wrote:
> 
> 
>     [
> https://issues.apache.org/activemq/browse/CAMEL-1994?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=54428#action_54428
> ] 
> 
> Claus Ibsen commented on CAMEL-1994:
> ------------------------------------
> 
> I have asked Gert V. to force an update at Hudson.
> 
> So take a look in the next day or so, to see if the Apache repository is
> not updated using that URI you found (its the correct one).
> 
>> WS-Adressing: No headers in the respose, [MAPs retrieved from message
>> null]
>> ---------------------------------------------------------------------------
>>
>>                 Key: CAMEL-1994
>>                 URL: https://issues.apache.org/activemq/browse/CAMEL-1994
>>             Project: Apache Camel
>>          Issue Type: Bug
>>          Components: camel-cxf
>>    Affects Versions: 2.0.0
>>         Environment: Windows XP, Camel 2.0.0, JDK 1.5, Soap-UI
>>            Reporter: Shailesh Soliwal
>>            Assignee: Willem Jiang
>>             Fix For: 2.1.0
>>
>>         Attachments: ebxml_request.xml, IHEXDS.zip, logs.txt,
>> wsa-test.patch
>>
>>
>> I am using a cxf endpoint configured in POJO mode and running in
>> wsdl-first-approach. When a web-service client(Soap-UI) send a request
>> with headers, it expects headers back with appropriate response Action
>> defined in wsdl, however, with this configuration no headers are not
>> being sent back.
>> Error seen on debug logs:
>> ContextUtils                   DEBUG retrieving MAPs from context
>> property javax.xml.ws.addressing.context.inbound
>> ContextUtils                   WARN  WS-Addressing - failed to retrieve
>> Message Addressing Properties from context
>> MAPAggregator                  DEBUG MAPs retrieved from message null
>> ContextUtils                   DEBUG retrieving MAPs from context
>> property javax.xml.ws.addressing.context.outbound
>> ContextUtils                   WARN  WS-Addressing - failed to retrieve
>> Message Addressing Properties from context
>> ContextUtils                   DEBUG retrieving MAPs from context
>> property javax.xml.ws.addressing.context.outbound
>> ContextUtils                   WARN  WS-Addressing - failed to retrieve
>> Message Addressing Properties from context
>> Please find attached detailed logs, a sample project, and a sample xml
>> request.
>> Some more details:
>> Endpoint configuration: CxfEndpoint, WSAdressing Feature enabled, Wsdl
>> First approach
>> Camel Version: 2.0.0
>> CXF Version: 2.2.2
> 
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 
> 
> 
http://old.nabble.com/file/p26421245/Subscribe.wsdl Subscribe.wsdl 
-- 
View this message in context: http://old.nabble.com/-jira--Created%3A-%28CAMEL-1994%29-WS-Adressing%3A-No-headers-in-the-respose%2C--MAPs-retrieved-from-message-null--tp25333276p26421245.html
Sent from the Camel Development mailing list archive at Nabble.com.