[JAVA] Creare un header SOAP personalizzato

Rispondi
Roberto
Amministratore
Messaggi: 161
Iscritto il: 19/12/2009, 19:30

[JAVA] Creare un header SOAP personalizzato

Messaggio da Roberto »

Supponiamo di avere la necessita' di inviare delle informazioni di credenziali all'interno dell'header di una generica SOAP Request strutturata nel seguente modo:

Codice: Seleziona tutto

<SOAP-ENV:Header>
     <UserCredentials xmlns="http://www.w3.org/2001/XMLSchema">
          <Username xmlns="">prova1</Username>
          <Password xmlns="">prova2</Password>
     </UserCredentials>
</SOAP-ENV:Header>
Per generare l'header possiamo utilizzare il seguente codice:

Codice: Seleziona tutto

SOAPHeader soapHeader = envelope.getHeader();
QName qNameUserCredentials = new QName("http://www.w3.org/2001/XMLSchema", "UserCredentials");
soapHeader.addHeaderElement(qNameUserCredentials);
Per inserire i vari elementi utilizziamo invece il seguente codice:

Codice: Seleziona tutto

Node firstChild = soapHeader.getFirstChild();
append(firstChild, "Username", "prova1");
append(firstChild, "Password", "prova2");
La funzione "append" e' strutturata nel seguente modo:

Codice: Seleziona tutto

private void append(Node node, String elementName, String elementText) {
     Element element = node.getOwnerDocument().createElement(elementName);
     element.setTextContent(elementText);
     node.appendChild(element);
}
Rispondi