String method = "GetLanguages";
String company = "";
String userName = "";
String password = "";
String languageCode = "en";
 
String soapProtocol = SOAPConstants.SOAP_1_1_PROTOCOL; 
if(useSoap12) {
    soapProtocol = SOAPConstants.SOAP_1_2_PROTOCOL; 
}
 
MessageFactory mf = MessageFactory.newInstance(soapProtocol);
 
SOAPMessage soapMessage = mf.createMessage();
 
if(!useSoap12) {
    MimeHeaders mimeHeaders = soapMessage.getMimeHeaders();
    mimeHeaders.addHeader("SOAPAction", namespace + method);
}
 
SOAPPart soapPart = soapMessage.getSOAPPart();
 
SOAPEnvelope soapEnvelope = soapPart.getEnvelope();
 
SOAPBody soapBody = soapEnvelope.getBody();
 
Name bodyName = soapEnvelope.createName(method, "", namespace);
SOAPBodyElement soapBodyElement = soapBody.addBodyElement(bodyName);
 
SOAPElement inputElement = soapBodyElement.addChildElement("input");
 
inputElement.addChildElement("CompanyName").addTextNode(company);
inputElement.addChildElement("UserName").addTextNode(userName);
inputElement.addChildElement("Password").addTextNode(password);
inputElement.addChildElement("LanguageCode").addTextNode(languageCode);
 
soapMessage.saveChanges();
 
SOAPConnectionFactory connectionFactory = SOAPConnectionFactory.newInstance();
 
SOAPConnection soapConnection = connectionFactory.createConnection();
 
SOAPMessage soapResponse = soapConnection.call(soapMessage, url);
 
soapConnection.close();
 
SOAPBody soapResponseBody = soapResponse.getSOAPBody();
 
SOAPFault soapFault = soapResponseBody.getFault();
if(soapFault != null) {
    throw new SOAPException(soapFault.getFaultString());
}
 
System.out.println("LanguageId | LanguageCode | LanguageName");
System.out.println("-----------------------------------------");
NodeList list = soapResponseBody.getElementsByTagName("Language");
for (int i = 0; i < list.getLength(); i++) {
    Element language = (Element)list.item(i);
    System.out.print(language.getElementsByTagName("LanguageId").item(0).getTextContent());
    System.out.print("\t|\t");
    System.out.print(language.getElementsByTagName("LanguageCode").item(0).getTextContent());
    System.out.print("\t|\t");
    System.out.print(language.getElementsByTagName("LanguageName").item(0).getTextContent());
    System.out.println();
}