Hi Alvin, Personally I've never tried reading data with an ObjectInputStream inside Cactus. The test we have for the setuserData() feature is the following:
public void beginSendUserData(WebRequest theRequest) { ByteArrayInputStream bais = new ByteArrayInputStream( "<data>some data to send in the body</data>".getBytes()); theRequest.setUserData(bais); theRequest.setContentType("text/xml"); } /** * Verify that we can send arbitrary data in the request body. * * @exception Exception on test failure */ public void testSendUserData() throws Exception { String buffer; StringBuffer body = new StringBuffer(); BufferedReader reader = request.getReader(); while ((buffer = reader.readLine()) != null) { body.append(buffer); } assertEquals("<data>some data to send in the body</data>", body.toString()); assertEquals("text/xml", request.getContentType()); } Hmm... Maybe the problem is with the "request.getInputStream();". In the test above it's doing a "request.getReader()". It would be nice to have another test with an input stream to try to reproduce your problem. If you could come up with a simple test as above that would reproduce the problem, I could add it to the Cactus test suite and we could tackle the problem (if any) and fix it. Thanks -Vincent > -----Original Message----- > From: Alvin Antony [mailto:[EMAIL PROTECTED] > Sent: vendredi 6 mai 2005 11:05 > To: cactus-user@jakarta.apache.org > Subject: Problem with ObjectInputStream and WebRequest.setUserData & > .getUserData() > > Dear Friends, > > I am new to the mailing list and so to Cactus!! Please pardon me if it > is a silly Q. > > I am writing a test suit for an Applet& Servlet client server > Application. > The Applet sends the information to the Servlet through an Object > stream, but my test case for this throws an EOFException. > > > public void beginService ( WebRequest webRequest ) throws > ClassNotFoundException, IOException > { > ProdFinderIntegratonTestRepository prodFinderIntegrationTestRep > = new ProdFinderIntegratonTestRepository (); > Map input; > try { > input = > prodFinderIntegrationTestRep.getRequestToCreateMainCategory(); > assertNotNull( input ); > > ByteArrayOutputStream bos = new > ByteArrayOutputStream(); > ObjectOutputStream oos = new ObjectOutputStream( bos > ); > oos.writeObject( input ); > oos.flush(); > bos.close(); > ByteArrayInputStream byteArrayInputStream = new > ByteArrayInputStream( bos.toByteArray() ); > objectInputStream = new ObjectInputStream( > byteArrayInputStream ); > webRequest.setContentType("application/binary"); > webRequest.setUserData( objectInputStream ) ; > } catch (ObjectNotFoundException e) { > e.printStackTrace(); > } catch (PFInternalError e) { > e.printStackTrace(); > > } > } > > /** > * > * Class under test for void service(HttpServletRequest, > HttpServletResponse) > */ > public void testService() throws ServletException, IOException { > > InputStream is = request.getInputStream(); > ObjectInputStream oInput = new ObjectInputStream(is); > MessageReceiver messageReceiver = new MessageReceiver(); > messageReceiver.init( config ); > messageReceiver.service(request, response ); > assertNotNull( response); > } > > [cactus] Testcase: > testService(com.siemens.productfinder.communication.TestMe > ssageReceiver): Caused an ERROR > [cactus] null > [cactus] java.io.EOFException > [cactus] at > java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInp > utStream.java:2165) > [cactus] at > java.io.ObjectInputStream$BlockDataInputStream.readShort(Obje > ctInputStream.java:2631) > [cactus] at > java.io.ObjectInputStream.readStreamHeader(ObjectInputStream. > java:734) > [cactus] at > java.io.ObjectInputStream.<init>(ObjectInputStream.java:253) > [cactus] at > com.siemens.productfinder.communication.TestMessageReceiver.t > estService(Unknown Source)... > > > Any help would be great > > Thanks in advance, > > > Alvin > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]