cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aki Yoshida <elak...@googlemail.com>
Subject Re: WS-Addressing and One Way
Date Tue, 17 Apr 2012 15:18:15 GMT
Hi,
Can you try CXF 2.5.x? A bunch of issues around oneway-processing with
and without ws-addressing have been fixed in 2.4.x and 2.5.x.

If you have a oneway service and the ws-addr feature is configured,
the service should be returning the http 202 empty response.

regards, aki

2012/4/17 Hervé BARRAULT <herve.barrault@gmail.com>:
> Hi,
> I'm trying to use CXF with both WS-Addressing and One Way.
>
> My client send a message (not with CXF) with the following SOAP Header:
>  <soapenv:Header>
> <wsa:Action soapenv:mustUnderstand="1">
>      http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/Notify
>    </wsa:Action>
>  </soapenv:Header>
>
> In my logs, I had :
> 14:10:31,210 | WARN  | ault-workqueue-2 |
> PhaseInterceptorChain                                          
 |
> org.apache.cxf.common.logging.LogUtils                            369 |
 -
> -  | Interceptor for {
> http://example.com/test1}StatusBrokerService#{http://docs.oasis-open.org/wsn/brw-2}Notifyhas
> thrown exception, unwinding now
> org.apache.cxf.binding.soap.SoapFault: MustUnderstand headers: [{
> http://www.w3.org/2005/08/addressing}Action] are not understood.
>    at
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$UltimateReceiverMustUnderstandInterceptor.handleMessage(MustUnderstandInterceptor.java:225)
>    at
> org.apache.cxf.binding.soap.interceptor.MustUnderstandInterceptor$UltimateReceiverMustUnderstandInterceptor.handleMessage(MustUnderstandInterceptor.java:199)
>    at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
>    at
> org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:218)
>    at
> org.apache.cxf.interceptor.OneWayProcessorInterceptor$1.run(OneWayProcessorInterceptor.java:105)
>    at
> org.apache.cxf.workqueue.AutomaticWorkQueueImpl$2.run(AutomaticWorkQueueImpl.java:332)
>    at
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>    at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>    at java.lang.Thread.run(Thread.java:662)
>
> And there was a classical 202/Accepted for a One Way message (fault not
> returned as it is one way).
>
>
>
> So, I found an interesting topics which says, enable the ws-addressing
> feature (to avoid this fault) :
> I added the feature
> <cxf:features>
>      <wsa:addressing/>
> </cxf:features>
>
> Now when i receive a message, an answer is automatically sent (which i
> guess is no more compliant with the One Way):
> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
>   <soap:Header>
>      <MessageID xmlns="http://www.w3.org/2005/08/addressing
> ">urn:uuid:67074ee9-455b-4488-b48d-e2a9b16a7c1b</MessageID>
>      <To xmlns="http://www.w3.org/2005/08/addressing">
> http://www.w3.org/2005/08/addressing/anonymous</To>
>      <ReplyTo xmlns="http://www.w3.org/2005/08/addressing">
>         <Address>http://www.w3.org/2005/08/addressing/none</Address>
>      </ReplyTo>
>   </soap:Header>
>   <soap:Body/>
> </soap:Envelope>
>
> I know, i use an old version of CXF : 2.2.12-fuse-00-00 but i have not seen
> a related JIRA (and a post said that 2.4.0 had the same behavior). (I am
> using also the PAYLOAD mode)
>
> I am doing it the right way ?
> Is this behavior normal ?
>
> Thanks for answers
> Regards
> Hervé

Mime
View raw message