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
Post a Comment