I am using JDK 1.5 with SAAJ [saaj-api-1.3.jar and saaj-impl-1.3.15.jar] and activation.jar
Now I have simple client below: On running this I am just getting the response just as ERROR tag nothing else, its very confusion, I thought there is something wrong with the webservice, so I have printed the SOAP_MESSAGE generated by SAAJ and using SOAP-UI sent the exact same message and it gave me the correct response, I even tried another webservice from URL [http://www.actionscript.org/forums/showthread.php3?t=70742] and it seem to be working correctly. Please someone let me know I am totally lost here. Thanks in advance.
import java.io.IOException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPEnvelope;
import javax.xml.soap.SOAPMessage;
import javax.xml.soap.SOAPPart;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.OutputKeys;
public class Test {
// Method for creating the SOAP Request
private static SOAPMessage createSOAPRequest() throws Exception {
MessageFactory messageFactory = MessageFactory.newInstance();
SOAPMessage soapMessage = messageFactory.createMessage();
SOAPPart soapPart = soapMessage.getSOAPPart();
// Construct SOAP Request Message:
// SOAP Envelope
SOAPEnvelope envelope = soapPart.getEnvelope();
envelope.addNamespaceDeclaration("sch", "http://www.cpscreen.com/schemas");
// SOAP Body
SOAPBody soapBody = envelope.getBody();
SOAPElement soapBodyElem = soapBody.addChildElement("CPLinkRequest","sch");
QName attributeName1 = new QName("account");
soapBodyElem.addAttribute(attributeName1, "NOTEST");
QName attributeName2 = new QName("userId");
soapBodyElem.addAttribute(attributeName2, "NONAME");
QName attributeName3 = new QName("password");
soapBodyElem.addAttribute(attributeName3, "NOPASSWORD");
SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("Type", "sch");
soapBodyElem1.addTextNode("Report");
SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("ProviderReferenceId", "sch");
soapBodyElem2.addTextNode("WPS-6472130");
soapMessage.saveChanges();
// Check the input
System.out.println("Request SOAP Message for Product web service");
soapMessage.writeTo(System.out);
System.out.println();
return soapMessage;
}
// Method for receiving the SOAP Response
private static void printSOAPResponse(SOAPMessage soapResponse) throws Exception {
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount","2");
Source sourceContent = soapResponse.getSOAPPart().getContent();
System.out.println("\nResponse SOAP Message from Product web service : ");
StreamResult result = new StreamResult(System.out);
transformer.transform(sourceContent, result);
}
// Starting point for SaajClient
public static void main(String args[]) {
try {
// Create SOAP Connection
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
// Sending SOAP Message to SOAP Server i.e, Product Catalog service
//String url = "http://www.webservicex.net/convertFrequency.asmx?WSDL";
java.net.URL endpoint = new URL("https://abc.xyz.com/pub/aaa/ws/backgroundCheck");
SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(),endpoint);
// Processing the SOAP Response
printSOAPResponse(soapResponse);
//System.out.print("Response SOAP Message:");
//soapResponse.writeTo(System.out);
soapConnection.close();
} catch (Exception e) {
System.err.println("Error occurred while sending SOAP Request to Server");
e.printStackTrace();
}
}
}