java - How to add xmlbean document element to soap header spring-ws -
i trying hit webservice using spring-ws, webservice producer requires custom element in soap header. new webservices, , having trouble trying inject values soap header. using xmlbeans transform xsd java , marshaling , unmarshaling. have constructed xmlbean document , set values custom header element, need document or maybe element attached document injected soap header. listed below wsdl (just header) in soapui (what used learn , initial testing)
<soapenv:envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:v1="http://www.ups.com/xmlschema/xoltws/upss/v1.0" xmlns:v11="http://www.ups.com/xmlschema/xoltws/rate/v1.1" xmlns:v12="http://www.ups.com/xmlschema/xoltws/common/v1.0"> <soapenv:header> <v1:upssecurity> <v1:usernametoken> <v1:username>name</v1:username> <v1:password>password</v1:password> </v1:usernametoken> <v1:serviceaccesstoken> <v1:accesslicensenumber>accesskey</v1:accesslicensenumber> </v1:serviceaccesstoken> </v1:upssecurity> </soapenv:header>
i found solution works, , isn't code. had ditch using xmlbeans, , create elements, @ least functionality there , webservice calls works.
@override public void dowithmessage(webservicemessage message) throws ioexception, transformerexception { try { soapmessage soapmessage = ((saajsoapmessage)message).getsaajmessage(); soapheader header = soapmessage.getsoapheader(); soapheaderelement soapheaderelement = header.addheaderelement(new qname("http://www.ups.com/xmlschema/xoltws/upss/v1.0", "upssecurity", "v1")); soapenvelope envelope = soapmessage.getsoappart().getenvelope(); envelope.addnamespacedeclaration("v1", "http://www.ups.com/xmlschema/xoltws/upss/v1.0"); soapelement usernametoken = soapheaderelement.addchildelement("usernametoken", "v1"); soapelement username = usernametoken.addchildelement("username", "v1"); soapelement password = usernametoken.addchildelement("password", "v1"); soapelement serviceaccesstoken = soapheaderelement.addchildelement("serviceaccesstoken", "v1"); soapelement accesslicensenumber = serviceaccesstoken.addchildelement("accesslicensenumber", "v1"); username.settextcontent("username"); password.settextcontent("password"); accesslicensenumber.settextcontent("key"); } catch (soapexception e) { e.printstacktrace(); } }
Comments
Post a Comment