- From: Owen Roberts <oroberts@baltimore.com>
- Date: Thu, 2 Aug 2001 16:25:51 +0100
- To: www-jigsaw@w3.org
> sorry if this hits the group twice... > > -----Original Message----- > From: Owen Roberts [mailto:owen@utvinternet.com] > Sent: 01 August 2001 22:58 > To: jigsaw@w3.org > Cc: Owen Roberts > Subject: hanging in HttpManager.RunRequest() > > > Hi all, > > I've trawled through some of the post archive but couldn't see this > mentioned... any help appreciated... > > Im use HttpManager to POST binary data to an octet stream using source > from Jigsaw 2.2.0. (Java 1.2.2) > > My code is basically calling the below in a loop: > { > HttpManager manager = HttpManager.getManager() ; > > org.w3c.www.protocol.http.Request request = > manager.createRequest() ; > request.setMethod("POST"); > request.setURL(new URL("http://" + m_hostname + > "/servlet/MVServlet")); > > ByteArrayOutputStream byteStream = new > ByteArrayOutputStream(100); > ObjectOutputStream objOut = new > ObjectOutputStream(byteStream) ; > objOut.writeObject(myObjectDerivedFromSerializable); > objOut.flush(); > > byte[] byteReq = byteStream.toByteArray(); > request.setContentType(MimeType.APPLICATION_OCTET_STREAM); > request.setContentLength(byteReq.length); > > //give stream to the http request. > request.setOutputStream( > new > ByteArrayInputStream(byteReq));//java.io.InputStream in); > > //hangs here ... > Reply reply = manager.runRequest(request); > } > > anyway, so the loop runs 5-6 times before hanging at runRequest... > and I traced it down to the line > reply = srv.runRequest(request); > in HttpManager.runRequest() by putting breakpoints after it that never get > hit. > > The (GenericServlet derived) servlet on the other end just takes thes > treamed object in and streams another back in reply. Its hosted on Jigsaw2 > .2.0. > > The code for the Servlet service method is below. Everything works fine > for 5-6 loops of the client before it hangs. the Servlet does not get the > request on the last runRequest() that hangs... > > thanks very much for your time, > Owen > > public void service(ServletRequest req, > ServletResponse res) > throws ServletException, IOException > { > try > { > if( req.getContentLength() > 0) > { > > ServletInputStream inStr = req.getInputStream(); > ObjectInputStream streamFromClient = > new ObjectInputStream(inStr); > > Object objReq = streamFromClient.readObject(); > > if (objReq instanceof MyRequest) > { > > MyRequest clientReq = (MyRequest)objReq; > > ..... > > > res.setContentType(MimeType.APPLICATION_OCTET_STREAM.toString()); > > ObjectOutputStream streamToClient = > new ObjectOutputStream(res.getOutputStream()); > > streamToClient.writeObject(myResponse.getResponse()); > > streamToClient.flush(); > > return; > } > else > { > ...fail > } > } > else > { > ...fail > } > } > catch (ClassNotFoundException e) > { > ...fail > } > } > } > > > ----------------------------------------------------------------------------- Baltimore Technologies plc will not be liable for direct, special, indirect or consequential damages arising from alteration of the contents of this message by a third party or as a result of any virus being passed on. In addition, certain Marketing collateral may be added from time to time to promote Baltimore Technologies products, services, Global e-Security or appearance at trade shows and conferences. This footnote confirms that this email message has been swept by Baltimore MIMEsweeper for Content Security threats, including computer viruses. http://www.baltimore.com
Received on Thursday, 2 August 2001 11:28:27 UTC