Ok, at least it seems to respond now but I get a ClassCast exception on the Object I try to put in the header. I try to do something like this:
soapMsg.getHeaders().add(new Header(new QName("http://api.tripolis.com"), "version=2.0")); for (Header header : soapMsg.getHeaders()) { System.out.println("header: " + header.getName()); } After setting the header I read it out of the message and it looks alright but further on the exception is thrown like this: [16:04:59.764] Interceptor has thrown exception, unwinding now [16:04:59.764] java.lang.ClassCastException: java.lang.String [16:04:59.764] at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:120) ... I'm almost there - I can feel it... Ulhas Bhole wrote: > > > Are you checking for the DOM elements? Don't expect to see it in string > format. > > you need to get the handle onto the Header list and go through the list > to check the DOM elements and you would find it there. > > Sorry, didn;t read the complete message it looks like your interceptor > kicks in after the header processing is done. If you have no dependency > on any interceptors to be finished you can add it before Phase.WRITE. > > you can add following lines to your interceptor's constructor and it > should make sure that the interceptor gets called before the header > processing happens. > > super(Phase.WRITE); > addBefore(SoapOutInterceptor.class.getName()); > > > Regards, > > Ulhas > > Ronald Pieterse wrote: >> Right, The header I'm setting is not appearing when I check the response >> in >> e.g. SoapUI. The only requirement I have is that I would like to see the >> header in my response one way or the other :-) >> I also have a System.out.println in my interceptor so I know it kicks in >> and >> no exceptions are thrown so I wonder where the header went... >> The response looks like this: >> >> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> >> <soap:Body> >> <ns1:getDatabaseFieldsResponse xmlns:ns1="http://some.namespace/"> >> <databaseFields> >> ... >> </databaseFields> >> </ns1:getDatabaseFieldsResponse> >> </soap:Body> >> </soap:Envelope> >> >> >> As you can see there's no headers available at all. Any ideas? >> >> >> Ulhas Bhole wrote: >> >>> Hi Roland, >>> >>> It's upto your requirement at which phase it should be added. I don't >>> see any problem in the way you are setting header. Do you mean to say >>> that interceptor kicks in but you don't see soap header other side? >>> >>> Regards, >>> >>> Ulhas Bhole >>> >>> Ronald Pieterse wrote: >>> >>>> Hello, >>>> >>>> I'm trying to set a header in the SOAP response of all my calls.This >>>> header >>>> must just contain the version of my service implementation. I'm trying >>>> to >>>> do >>>> this using an OUT interceptor (extends AbstractSoapInterceptor) which >>>> is >>>> defined in my spring file: >>>> >>>> >>>> <bean id="soapHeaderSetter" >>>> class="my.package.SoapHeaderSetter" /> >>>> >>>> <cxf:bus> >>>> <cxf:inInterceptors /> >>>> <cxf:outInterceptors> >>>> <ref bean="soapHeaderSetter" /> >>>> </cxf:outInterceptors> >>>> <cxf:inFaultInterceptors /> >>>> </cxf:bus> >>>> >>>> >>>> The interceptor kicks in alright when I go back to the client but it's >>>> unclear which Phase I need to be in to add the header and also how to >>>> set >>>> the header. Do I just get the headers (btw there are no response >>>> headers >>>> available - is that correct?) and then add one to the list like this: >>>> >>>> >>>> soapMsg.getHeaders().add(new Header(new >>>> QName("http://some.namespace"), "api.version=1.7")); >>>> >>>> >>>> I suspect that the way I set this header is not entirely correct :-) I >>>> could >>>> use some help here. THNX >>>> >>>> >>>> >>> ---------------------------- >>> IONA Technologies PLC (registered in Ireland) >>> Registered Number: 171387 >>> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, >>> Ireland >>> >>> >>> >> >> > > ---------------------------- > IONA Technologies PLC (registered in Ireland) > Registered Number: 171387 > Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland > > -- View this message in context: http://www.nabble.com/Setting-SOAP-header-in-SOAP-response-tf4697009.html#a13428076 Sent from the cxf-user mailing list archive at Nabble.com.