• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Accessing servlets using URLConnection

 
Poornachandran R
Ranch Hand
Posts: 47
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hai all,
Good morning.
I have a small problem in accessing servlets using URLConnection in stand-alone application. Following is the snippet of client and servlet.
URL url = new URL("http://mymachine/abc/Servlet");
HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
httpConnection.setDoOutput(true);
httpConnection.setDoInput(true);
httpConnection.setRequestMethod("POST");
httpConnection.setUseCaches(false);
httpConnection.setRequestProperty("Content-type", "application/octet-stream");
httpConnection.setAllowUserInteraction(false);
PrintWriter out = new PrintWriter(httpConnection.getOutputStream());
String str = "Hello world";
out.println(str);
out.close();

Servlet

public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("in doGet");
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
System.out.println("in doPost");
}
But it does not seem to invoke any of these methods in servlet.
FYI : I have deployed this servlet in Weblogic 6.1.

Poornachandran
 
Maulin Vasavada
Ranch Hand
Posts: 1873
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hi Poornachandran,
u can try this after ur PrintWriter out = new PrintWriter(httpConnection.getOutputStream()); line,
BufferedInputStream bis = new BufferedInputStream(httpConnection.getInputStream());
bis.close();
that should work. i face the similar problem and the above solution did work.
i deduced that ONLY IF WE OPEN AN INPUT STREAM CONNECTION to the servlet, the servlet RESPONDS...DOESN'T matter if we don't want to do anything with the input stream we get (thats why we are closing it in above code).
regards
maulin
 
William Brogden
Author and all-around good cowpoke
Rancher
Posts: 13064
6
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I'm not sure if this is related to your problem, but you should never close the output stream until you are through with the connection - it closes the socket and you will never get any response. Instead you should flush() the output stream so the buffered data will all be sent.
Bill
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic