Hi all... question: any reason why the following code is not setting the apiKey SOAP Header?
When I look inside the headerElement object all I see is "[API-KEY: null]" although the value of apiKey is not null but a string.Code:package com.hoovers.webservice.springdemo; import java.io.IOException; import javax.xml.namespace.QName; import javax.xml.transform.TransformerException; import org.springframework.ws.WebServiceMessage; import org.springframework.ws.client.core.WebServiceMessageCallback; import org.springframework.ws.soap.SoapHeader; import org.springframework.ws.soap.SoapHeaderElement; import org.springframework.ws.soap.SoapMessage; public class HeaderCallback implements WebServiceMessageCallback { private String namespaceURI; private String elementName; private String apiKey; private String usernameElement; private String passwordElement; private String username; private String password; public void doWithMessage(WebServiceMessage message) throws IOException, TransformerException { QName apiKeyElement = new QName(getNamespaceURI(), getElementName()); SoapMessage msg = (SoapMessage) message; SoapHeader header = msg.getEnvelope().getHeader(); SoapHeaderElement headerElement = header.addHeaderElement(apiKeyElement); headerElement.setText(apiKey); /** * Set username & password in header to invoke authentication * username & password are passed in from applicationContext.xml */ if (getUsernameElement() != null) { SoapHeaderElement usernameHeaderElement = header.addHeaderElement(new QName(getNamespaceURI(), getUsernameElement())); usernameHeaderElement.setText(username); } if (getPasswordElement() != null) { SoapHeaderElement passwordHeaderElement = header.addHeaderElement(new QName(getNamespaceURI(), getPasswordElement())); passwordHeaderElement.setText(password); } } public String getNamespaceURI() { return namespaceURI; } public void setNamespaceURI(String namespaceURI) { this.namespaceURI = namespaceURI; } public String getApiKey() { return apiKey; } public void setApiKey(String apiKey) { this.apiKey = apiKey; } public void setElementName(String elementName) { this.elementName = elementName; } public String getElementName() { return elementName; } public String getUsernameElement() { return usernameElement; } public void setUsernameElement(String usernameElement) { this.usernameElement = usernameElement; } public String getPasswordElement() { return passwordElement; } public void setPasswordElement(String passwordElement) { this.passwordElement = passwordElement; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }
Thanks in advance...


Reply With Quote