You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Sergei <da...@yandex.ru> on 2011/06/08 17:02:25 UTC

How to unmarshal header to object?

Hi!

I have been trying to handle SOAP headers using "CXF proprietary way".

//client
List<Header> headers = new ArrayList<Header>();
Header dummyHeader = new Header(new QName("http://webservices", "isMockMode"),
  "1", new JAXBDataBinding(String.class));

System.out.println("header.getName()=" + dummyHeader.getName());
System.out.println("header.getObject()=" + dummyHeader.getObject());
headers.add(dummyHeader);

((BindingProvider) port).getRequestContext().put(Header.HEADER_LIST, headers);


//server
List<Header> headers = (List<Header>)
context.getMessageContext().get(Header.HEADER_LIST);

I don't understand why header.getObject() is String instance on client side but
on the sever side is org.w3c.dom.Element instance.

And how to unmarshal this Element object to String object. 

Maybe using header.getDataBinding().createReader
or HeaderManager
or HeaderProcessor
or something else?

Sergei