Hello,
I have following class using JAX-RS for restful web services. I want to pass
multiple parameters to a post method.
However, the values from the client call only populates the first parameter
i.e. pmsg and not the pval parameter.
@Path("/helloWorldService/")
@WebService(serviceName = "HelloWorld", name = "HelloWorldService",
targetNamespace = "http://mylocal/test/HelloWorldService")
public interface HelloWorldService {
@WebMethod
@POST
@Path("/sayhello")
String sayHello(String pmsg, String pval);
}
What is wrong with this annotation? Am I missing anything?
In my Tomcat server, Palyoad shows this value:
pmsg=adam&pval=smith
but in my implemented class only pmsg is populated and pval is null.
This is my client call. Am I calling it incorrectly?
URL u = new
URL("http://localhost:8080/My.WebServices/rest/helloWorldService/sayhello");
String[] paramName = new String[] { "pmsg", "pval" };
String[] paramVal = new String[] { "adam", "smith" };
HttpURLConnection conn = (HttpURLConnection)
u.openConnection();
conn.setRequestMethod("POST");
conn.setDoOutput(true);
conn.setDoInput(true);
conn.setUseCaches(false);
conn.setAllowUserInteraction(false);
conn.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
OutputStream out = conn.getOutputStream();
Writer writer = new OutputStreamWriter(out, "UTF-8");
for (int i = 0; i < paramName.length; i++) {
writer.write(paramName[i]);
writer.write("=");
writer.write(URLEncoder.encode(paramVal[i],
"UTF-8"));
writer.write("&");
}
writer.close();
out.close();
BufferedReader rd = new BufferedReader(new
InputStreamReader(conn
.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
System.out.println(sb.toString());
Thanks.
--
View this message in context:
http://old.nabble.com/Passing-multi-parameters-to-a-post-RESTful-call-tp28103206p28103206.html
Sent from the cxf-user mailing list archive at Nabble.com.