java - Get response header using Jax WS -


i need soap header response using jax-ws use ws. response xml:

<soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xmlns:xsd="http://www.w3.org/2001/xmlschema">    <soap:header>       <sessaoidheader xmlns="http://www.cvm.gov.br/webservices/">          <guid>9d63221b-8a3a-4fd6-84fe-100fa53a55d5</guid>          <idsessao>237196706</idsessao>       </sessaoidheader>    </soap:header>    <soap:body>       <loginresponse xmlns="http://www.cvm.gov.br/webservices/"/>    </soap:body> </soap:envelope> 

and java code:

wsdownloadinfs infs = new wsdownloadinfs();      wsdownloadinfssoap proxy = infs.getwsdownloadinfssoap(); proxy.login(1779, "5270"); 

in operation don't have return (it's void).

i have tried using bindingprovider this:

bindingprovider prov = (bindingprovider) proxy; headerlist list = (headerlist) prov.getresponsecontext().get("com.sun.xml.internal.ws.api.message.headerlist"); 

but doesn't have properties.

i find solution!

here's have done:

i take the binding provider , response headerlist from:

    bindingprovider prov = (bindingprovider) proxy;     headerlist list = (headerlist) prov.getresponsecontext().get("com.sun.xml.internal.ws.api.message.headerlist"); 

so, headerlist header want (in case "_sessaoidheader_qname"):

    header h =list.get(objectfactory._sessaoidheader_qname, true); 

then create soapmessage , write header content it, afeter take want soapheader:

    soapheader header = message.getsoapheader();     nodelist idsessaonode = header.getelementsbytagnamens("*", "idsessao");     string idsess = idsessaonode.item(0).getchildnodes().item(0).getnodevalue();     string guid = header.gettextcontent(); 

here complete code:

    wsdownloadinfs infs = new wsdownloadinfs();          wsdownloadinfssoap proxy = infs.getwsdownloadinfssoap();     proxy.login(1779, "5270");       bindingprovider prov = (bindingprovider) proxy;     headerlist list = (headerlist) prov.getresponsecontext().get("com.sun.xml.internal.ws.api.message.headerlist");     header h =list.get(objectfactory._sessaoidheader_qname, true);     soapmessage message = messagefactory.newinstance().createmessage();     h.writeto(message);     soapheader header = message.getsoapheader();     nodelist idsessaonode = header.getelementsbytagnamens("*", "idsessao");     string idsess = idsessaonode.item(0).getchildnodes().item(0).getnodevalue();     string guid = header.gettextcontent(); 

thanks again!


Comments

Popular posts from this blog

php - SPIP: From Tag directly to an article -

jquery - isAjaxRequest always return false -

ruby on rails - In a controller spec, how to find a specific tag in the generated view? -