If there is a mustUnderstand=1 attribute, you need to have an interceptor (subclass of our SoapInterceptor) or a JAX-WS handler that is registered to say it handles that header via the getUnderstoodHeaders() call.
Alternatively, with 2.2.x, in you impl, you can get the headers from the WebServiceContext and remove them from the list. The runtime will then assume your impl handled them. This will be changing in 2.3 though. Dan On Thursday 04 March 2010 6:05:18 pm Coder One wrote: > I don't mean to hijack the thread, but I ran into the same problem with CXF > 2.2.5. > > The below SOAP extracts worked fine with regular HTTP transport, but not > with our custom transport. > > > > <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> > <s:Header> > <Action s:mustUnderstand="1" > xmlns="http://schemas.microsoft.com/ws/2005/05/ addressing/none" /> > > We get the > > MustUnderstand headers: > [{http://schemas.microsoft.com/ws/2005/05/addressing/none}To, > {http://schemas.microsoft.com/ws/2005/05/addressing/none}Action] are not > understood. > > does the default http transport configure some interceptor > (MustUnderstandInterceptor?) that we also must configure? Can we look up > an example somewhere? > > Thanks... > > > > ----- Original Message ---- > From: Daniel Kulp <[email protected]> > To: [email protected] > Cc: Andris <[email protected]> > Sent: Mon, March 1, 2010 6:54:44 PM > Subject: Re: "MustUnderstand headers:" > > > > This SOUNDS like the server side is missing the WS-Security and/or the WS- > Policy stuff. Check the war to see what jars are there. > > Also, you don't mention what version of CXF you are using. I assume 2.2.6? > > Dan > > On Mon March 1 2010 1:28:19 pm Andris wrote: > > Hello everybody, > > > > I am new in CXF but I have a rather good practice in Axis2 (and in Metro > > over Tomcat). > > I developed a Sping-based CXF secure web service using wsdl-first mode. > > The ws-policy applied is symmetric binding and only signature is > > declared. The wsdl and the cxf-servlet.xml are attached. > > > > Testing my service the client program is failed with a very tricky > > message: "Could not find Reference #_5004 under Signature with ID_1". > > Using the tcp monitor trace I stated the "#_5004" identifies the > > response-body to be signed. The trace shows an almost complete response; > > the timestamp and the body are referenced for signing, the signature is > > generated, etc. > > > > But the body of the response contains a fault message: > > <faultcode>soap:MustUnderstand</faultcode> > > > > <faultstring>MustUnderstand headers: > > [{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-sece > > xt -1.0.xsd}Security] are not understood.</faultstring> > > > > The server (before generating the soap-fault) gives a warning: > > WARNING: Interceptor for > > {http://test.sztaki.hu}Echo#{http://test.sztaki.hu}echo has thrown > > exception, unwinding now > > > > What is wrong in my code or what should I modify in my program? > > > > Any help is highly appreciated! > > > > A. > > http://old.nabble.com/file/p27747263/Echo.wsdl Echo.wsdl > > > > http://old.nabble.com/file/p27747263/cxf-servlet.xml cxf-servlet.xml -- Daniel Kulp [email protected] http://dankulp.com/blog
