Hi there,
I'm new to
Java but trying to make a client that will connect and send
SOAP request to a Server.
The script I'm trying to send works well via soapUI.
When I'm trying to use "my" client I'm getting following error:
"java.io.IOException: Server returned HTTP response code: 500 for URL:
https://xxxxx/path-to-location
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)"
Here is my code:
"// Set the HostnameVerifier to the HttpsURLConnection
HttpsURLConnection.setDefaultHostnameVerifier(verifier);
// Declare a new HttpsURLConnection
HttpsURLConnection connection = null;
// Try to connect and execute the request
try {
// Declare a SSLContext to use
SSLContext sslContext = SSLContext.getInstance("SSL");
// Call the TrustManager that is designed to accept all
TrustManager[] trustMgr = getTrustMgr();
// SSL Context.init(Key manager, Trust manager, random number generator)
sslContext.init(null, trustMgr, new SecureRandom());
// Set the socket of the HTTPS connection
HttpsURLConnection.setDefaultSSLSocketFactory(sslContext.getSocketFactory());
// Open the URL indicated by the reference End Point
URL url = new URL(this.refEndPoint);
connection = (HttpsURLConnection) url.openConnection();
connection.setDoInput(true);
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.setRequestProperty("Accept-Encoding", "gzip,deflate");
connection.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
connection.setRequestProperty("Host", this.xmlUrl);
connection.setRequestProperty("Content-Length", Integer.toString(command.length()));
connection.setRequestProperty("SOAPAction", "myAction");
connection.setRequestProperty("User-Agent", "Jakarta Commons-HttpClient/3.1");
connection.setRequestProperty("Authorization", "Basic");
setCredentials(connection, this.xmlUsername, this.xmlPassword);
// Connect
connection.connect();
System.out.println(connection.getCipherSuite());
// Send Request to the server
DataOutputStream outStr = new DataOutputStream(connection.getOutputStream ());
outStr.writeBytes(command);
outStr.flush();
outStr.close();
// Get Response from the server
InputStream inputStream = connection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while((line = reader.readLine()) != null) {
response.append(line);
response.append('\r');
logger.debug(line);
}
reader.close();
// Set the results
result = true;
rawXmlResult = new String(response);
}"
Here is my "command":
"<?xml version="1.0" encoding="UTF-8"?>
<ns2:myAction xmlns:cus="http://xxxxx/">
<buddy>
<name>John</name>
</buddy>
</ns2:myAction>
"
Any help are very much appreciated!
Thanks in advance!