Hello, I have an applet that sends an object to a servlet via an object
input stream and I get the following error..
Ctx(/pr) : IOException in R( /pr + /servlet/pr + null) -
java.io.StreamCorruptedException: Caught EOFException while reading the
stream header
at
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:840)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:163)
at pr.doGet(pr.java:43)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at javax.servlet.http.HttpServlet.service(HttpServlet.java)
at
org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:574)
at org.apache.tomcat.core.Handler.invoke(Handler.java:322)
at org.apache.tomcat.core.Handler.service(Handler.java:235)
at
org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:485)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:917)
at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:833)
at
org.apache.tomcat.modules.server.Http10Interceptor.processConnection(Http10Interceptor.java:176)
at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:494)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:516)
at java.lang.Thread.run(Thread.java:479)
--------------------
my code is as follows..
public boolean sendToServlet()
{
boolean sent = false;
FormData fd = new
FormData(cName,deliver,phone,acct,requested,date,subt,
hst,tot,items);
try {
Serializable objs[] = { fd };
URL servlet = new URL(webbase, "pr/servlet/pr");
in = postObjects(servlet, objs);
Boolean tmp = (Boolean)in.readObject();
sent = tmp.booleanValue();
in.close();
} catch(Exception e) {}
return sent;
}
public ObjectInputStream postObjects(URL servlet,
Serializable objs[]) throws Exception
{
URLConnection con = servlet.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");
// Write the arguments as post data
ObjectOutputStream out = new
ObjectOutputStream(con.getOutputStream());
int numObjects = objs.length;
for (int x = 0; x < numObjects; x++) {
out.writeObject(objs[x]);
}
out.flush();
out.close();
return new ObjectInputStream( con.getInputStream() );
}
--servlet code chunk--
public void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
res.setContentType("text/html");
ObjectInputStream in = new
ObjectInputStream(req.getInputStream());
try {
FormData data = (FormData)in.readObject();
PrintWriter out = res.getWriter();
report(res.getWriter(), data);
} catch(Exception e) {}
}
-----------------
In a previous application I used basically the same code but in my servlet
I used the doPost method instead. That application worked fine with no
errors.. When I tried doing this appliation with doPost I would get
GET method not specified errors..
The only difference between the 2 applications is that I am now using
tomcat (not servletrunner).
Is there something I'm not doing that I should be?
Thanks
Sohaila
___________________________________________________________________________
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff SERVLET-INTEREST".
Archives: http://archives.java.sun.com/archives/servlet-interest.html
Resources: http://java.sun.com/products/servlet/external-resources.html
LISTSERV Help: http://www.lsoft.com/manuals/user/user.html