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 <[email protected]>: > 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é
