Koristim axis (eclipse izgenerisao klijentske klase na osnovu wsdl-a)
Napravim hedar i umetnem ga na prozy pre nego sto pozovem metodu koju hocu.
...
ExchangeRateXmlServiceSoapProxy exchangeRateXmlServiceSoapProxy = new ExchangeRateXmlServiceSoapProxy(endpoint);
ExchangeRateXmlServiceSoap exchangeRateXmlServiceSoap = exchangeRateXmlServiceSoapProxy.getExchangeRateXmlServiceSoap();
SOAPHeaderElement ah = createHeader();
org.apache.axis.client.Stub stub = (org.apache.axis.client.Stub) exchangeRateXmlServiceSoap;
stub.setHeader(ah);
...
ispod je kompletan kod
public class CommandGetDataFromWS {
public static void main(String[] args) {
String endpoint = "
https://webservices.nbs.rs/Com..._0/ExchangeRateXmlService.asmx";
ExchangeRateXmlServiceSoapProxy exchangeRateXmlServiceSoapProxy = new ExchangeRateXmlServiceSoapProxy(endpoint);
ExchangeRateXmlServiceSoap exchangeRateXmlServiceSoap = exchangeRateXmlServiceSoapProxy.getExchangeRateXmlServiceSoap();
SOAPHeaderElement ah = createHeader();
org.apache.axis.client.Stub stub = (org.apache.axis.client.Stub) exchangeRateXmlServiceSoap;
stub.setHeader(ah);
try {
exchangeRateXmlServiceSoapProxy.setEndpoint(endpoint);
String currentExchangeRate = exchangeRateXmlServiceSoapProxy.getCurrentExchangeRate(1);
System.out.println(currentExchangeRate);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static SOAPHeaderElement createHeader() {
try {
String PREFIX="
http://communicationoffice.nbs.rs";
SOAPHeaderElement ah= new SOAPHeaderElement(new QName("AuthenticationHeader"));
ah.addNamespaceDeclaration("", PREFIX);
ah.setNamespaceURI(PREFIX);
SOAPElement node = ah.addChildElement("UserName");
node.addTextNode("nnn");
SOAPElement node2 = ah.addChildElement("Password");
node2.addTextNode("nnn");
SOAPElement node3 = ah.addChildElement("LicenceID");
node3.addTextNode("nnn-nnn-nnn-nnn-nnn");
System.out.println(ah.getAsString());
return ah;
} catch (SOAPException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}