I'm using maven as my build tool.trying to call soap based webservice from my java code.But something went wrong with my query.This query string i taken from soapUI.I tested my webservice with soapUI.it was working.But now its not working while working with apache http client.someone plz help me!!
public class TestMainClient {
public static void main(String[] args) {
HttpClient httpObj = new HttpClient();
httpObj.getParams().setParameter("http.useragent", "Web Service Test Client");
BufferedReader br = null;
String data = "<soap:Envelopexmlns:soap=\"http://www.w3.org/2003/05/soap-envelope/\" xmlns:web=\"http://webservice.OrderProcessor/\""
+ " xmlns:xsd=\"http://dto.order.cloudbill.com/xsd/\">"
+ "<soap:Header/>"
+ "<soap:Body>"
+ "<web:placeOrder>"
+ "<web:placeOrderRequest>"
+ "<xsd:orderDate>2015-01-16T09:00:00</xsd:orderDate>"
+ "<xsd:orderDescription>order has two elements</xsd:orderDescription>"
+ "<xsd:orderElementRequests>"
+ "<xsd:orderElementRequest>"
+ "<xsd:createdDate>2015-01-16T09:00:00</xsd:createdDate>"
+ " <xsd:orderElementAttributeRequests>"
+ "<xsd:arrayOrderElementAttribute>"
+ "<xsd:attributeName>Hard disk</xsd:attributeName>"
+ "<xsd:attributeValue>1gb</xsd:attributeValue>"
+ "<xsd:createdDate>2015-01-16T09:00:00</xsd:createdDate>"
+ "</xsd:arrayOrderElementAttribute>"
+ "</xsd:orderElementAttributeRequests>"
+ "<xsd:order_item_name>Laptop</xsd:order_item_name>"
+ " <xsd:order_item_price>20000</xsd:order_item_price>"
+ " </xsd:orderElementRequest>"
+ "</xsd:orderElementRequests>"
+ "</web:placeOrderRequest>"
+ "</web:placeOrder>"
+ "</soap:Body>"
+ "</soap:Envelope>";
PostMethod methodPost = new PostMethod("http://localhost:8081/OrderManagementService/services/OrderManagementService?wsdl");
methodPost.setQueryString(data);
methodPost.setRequestHeader("Content-Type", "text/xml");
try {
int returnCode = httpObj.executeMethod(methodPost);**Line 51 **
if (returnCode == HttpStatus.SC_NOT_IMPLEMENTED) {
System.out.println("The Post method is not implemented by this URI");
/*methodPost.getResponseBodyAsString();*/
} else {
br = new BufferedReader(new InputStreamReader(methodPost.getResponseBodyAsStream()));
String readLine;
while (((readLine = br.readLine()) != null)) {
System.out.println(readLine);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
methodPost.releaseConnection();
if (br != null)
try {
br.close();
} catch (Exception fe) {
fe.printStackTrace();
}
}
}
}
=======compiler out========
org.apache.commons.httpclient.URIException: Invalid query
at org.apache.commons.httpclient.URI.parseUriReference(URI.java:2049)
at org.apache.commons.httpclient.URI.<init>(URI.java:147)
at org.apache.commons.httpclient.HttpMethodBase.getURI(HttpMethodBase.java:265)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:383)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:323)
at com.module.model.TestMainClient.main(TestMainClient.java:51)