The phase change does not seem to matter and yes, as Dan suggested LoggingInInterceptor does show empty header: Apr 23, 2008 1:14:42 PM org.apache.cxf.interceptor.LoggingInInterceptor loggingINFO: Inbound Message----------------------------Encoding: UTF-8Headers: {connection=[keep-alive], host=[dev1.aixtest.com], user-agent=[Java/1.5.0_10], SOAPAction=[""], transfer-encoding=[chunked], pragma=[no-cache], content-type=[text/xml; charset=UTF-8], accept=[*], Cache-Control=[no-cache]}Messages: Message: Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns1:sayHi xmlns:ns1="http://spring.demo/"><arg0>test</arg0></ns1:sayHi></soap:Body></soap:Envelope>--------------------------------------
> Date: Wed, 23 Apr 2008 18:58:13 +0100> From: [EMAIL PROTECTED]> To: > cxf-user@incubator.apache.org> Subject: Re: client interceptor to send > parameters with headers> > Just saw Dan's mail and his suggestion to move the > interceptor to > Phase.USER_LOGICAL is much cleaner than mine.> > Regards,> > > Ulhas Bhole> > Ulhas Bhole wrote:> > Hello Henry,> >> > Sorry I forgot about > the Header object creation. you are tying to add > > the interceptor in > Phase.WRITE and for some reason it looks like it is > > getting called after > the SoapOutInterceptor which does the header > > processing.> >> > Try adding > the following line to the constructor after super() :> > > addBefore(SoapOutInterceptor.class.getName());> >> > This will make sure that > the interceptor is called before the headers > > are being processed.> >> > > Regards,> >> > Ulhas Bhole> >> > olanga henry wrote:> >> Dan: I am afraid > that I am still not seeing any headers on the server > >> side even after I > tried sending the Header the way you suggested.> >> > >> I am using the > following interceptor (as I found from the discussion > >> threads) in the > server side applied to JAX-WS HelloWorld service:> >> > >> public class > MySoapInterceptor extends AbstractSoapInterceptor {> >> > >> public > MySoapInterceptor() { super(Phase.UNMARSHAL); }> >> > >> public void > handleMessage(SoapMessage msg) throws SoapFault {> >> > System.out.println("Interceptor " + this.getPhase());> >> List<Header> lista > = msg.getHeaders(); for (Header h : lista) > >> { Element el = (Element) > h.getObject(); > >> System.out.println("Header XML :"); > >> > XMLUtils.printDOM(el); Node node = > >> DOMUtils.getChild(el, null); > printNode(node);> >> while ( ((node = DOMUtils.getNext(node, null, > >> > node.getNodeType()) ) != null) ) { printNode(node); } }> >> }> >> > >> public > void printNode(Node node) { System.out.println("Node : > >> "); > System.out.println(node.getNodeName()); > >> System.out.println("Node value : > "); > >> System.out.println(DOMUtils.getContent(node)); }> >> }> >> > >> > >> > and here is my service config:> >> > >> > >> <bean id="hello" > class="demo.spring.HelloWorldImpl" /> > >> <jaxws:endpoint id="helloWorld" > > >> implementor="#hello" address="/services/HelloWorld" > >> > > <jaxws:inInterceptors> <ref > >> bean="myInterceptor" /> > >> > </jaxws:inInterceptors> </jaxws:endpoint>Thank you.> >>> >>> >>> >> > >>> > From: [EMAIL PROTECTED]> To: cxf-user@incubator.apache.org> Subject: > >>> > Re: client interceptor to send parameters with headers> Date: Wed, > >>> 23 > Apr 2008 13:00:24 -0400> CC: [EMAIL PROTECTED]> > On Wednesday 23 > >>> April > 2008, sudip shrestha wrote:> > Ulhas:> >> > *In the method: > >>> public > java.util.List<Header> > > >>> > <http://incubator.apache.org/cxf/javadoc/latest/org/apache/cxf/headers> > >>> > >/Header.html>> **getHeaders()> >> > **as the list has the type of > >>> > Header, the add method does not accept> > org.w3c.dom.Element as the > >>> > parameter.> > Just do "new Header(> new QName(el.getNamespaceURI(),> > >>> > el.getLocalName()),> el)"> > That should be it.> > Dan> > > > > >> > > >>> > Thanks> > *> >> > On Wed, Apr 23, 2008 at 10:53 AM, Ulhas Bhole > >>> <[EMAIL > PROTECTED]> > wrote:> > > Hi Olanga,> > >> > > try > >>> skipping the > SoapHeader creation and add the DOM element> > > > >>> directly into the > Header list like msg.getHeaders().add(param1).> > > >>> >> > > -- Ulhas > Bhole> > >> > > olanga henry wrote:> > > > Hi all, > >>> this was so easy in > XFire with the handlers. I am a bit> > > > > >>> struggling due to lack of > clear examples. I am trying to write a> > > >>> > > simple interceptor on the > client side (am not clear on which> > > >>> > > abstractInterceptor to extend > out of several available in cxf, > >>> so> > > > in this example I just > extended AbstractSoapInterceptor) > >>> so that I> > > > can send some > parameters in the soap headers. Here > >>> is what I> > > > did:public class > AddHeaderInterceptor extends> > > > >>> > AbstractSoapInterceptor { public > AddHeaderInterceptor() {> > > > > >>> super(Phase.WRITE); } public void > handleMessage(SoapMessage msg)> > > >>> > > throws SoapFault { Document d = > DOMUtils.createDocument(); > > > > >>> > Element param1 = > d.createElement("my_param1"); > > > > > >>> param1.setTextContent("my > param1"); SoapHeader sh_param1 = new> > > > >>> > SoapHeader(new > QName("http://spring.demo", "HelloWorldImplPort"),> > >>> > > > param1); > msg.getHeaders().add( sh_param1 ); }}Then I attached> > >>> > > > the > interceptor to the factory in the actual client code:> > > > >>> > > JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();> > > > >>> > > factory.setServiceClass( HelloWorld.class ); factory.setAddress(> > >>> > > > > "http://wsdev.adestagroup.com/services/HelloWorld" ); > > > > > >>> > factory.getOutInterceptors().add(new> > > > AddHeaderInterceptor()); > >>> > //<<-------------------> > > > HelloWorld client = (HelloWorld) > >>> > factory.create();> > > > System.out.println( client.sayHi("test") > >>> );But > I can't seem> > > > to intercept the headers at the server > >>> side. What > am I doing> > > > wrong here?Highly appreciate any help. > >>> Thanks> > > > > > >>> _________________________________________________________________> > > > >>> > > Make i'm yours. Create a custom banner to support your cause.> > > > >>> > >> > > > > >>> > http://im.live.com/Messenger/IM/Contribute/Default.aspx?source=TXT> > >>> > > > >_TAGHM_MSN_Make_IM_Yours> > >> > > > >>> ----------------------------> > > > IONA Technologies PLC (registered > >>> in Ireland)> > > Registered Number: > 171387> > > Registered Address: > >>> The IONA Building, Shelbourne Road, > Dublin 4,> > > Ireland> > > > -- > >>> > J. Daniel Kulp> Principal Engineer, > IONA> [EMAIL PROTECTED]> > >>> http://www.dankulp.com/blog> >>> > >> > _________________________________________________________________> >> Spell a > grand slam in this game where word skill meets World Series. > >> Get in the > game.> >> > http://club.live.com/word_slugger.aspx?icid=word_slugger_wlhm_admod_april08 > > >>> >> > >> >> > ----------------------------> > 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 _________________________________________________________________ Make i'm yours. Create a custom banner to support your cause. http://im.live.com/Messenger/IM/Contribute/Default.aspx?source=TXT_TAGHM_MSN_Make_IM_Yours