Hi,

I keep getting the exception "java.io.StreamCorruptedException: InputStream
does not contain a serialized object", but I really don't understand why
this is happening. It seems to be raising this exception even before i do a
in.readObject() ! But why??

Below is the output from the servlet console:

JSDK WebServer Version 2.1
Loaded configuration from file:C:\test-server/default.cfg
endpoint created: :8080
com.sun.web.core.InvokerServlet: init
LoginServlet: init
com.sun.web.core.DefaultServlet: init

This is the output from the java plugin console

Url passed in is: http://localhost:8080/servlet/LoginServlet/
sent objects!

io exception: java.io.StreamCorruptedException: InputStream does not
contain a serialized object
java.io.StreamCorruptedException: InputStream does not contain a serialized
object
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at TMSApplet.postObjects(TMSApplet.java:66)
at LoginApplet$1.actionPerformed(LoginApplet.java:54)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Unknown
Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseR ....(etc)


This is the relevant code snippet from LoginApplet

            URL url = constructURL(getCodeBase(), loginServlet);

             String userID = useridTextField.getText();
             String password = new String(passwordPasswordField.getPassword());
             //String password = passwordPasswordField.getText();
             Serializable objects[] = {userID, password};
             ObjectInputStream in = postObjects(url, objects);

             //will always get a string indicating the result
             String result = (String)in.readObject();
             System.err.println("Got response: " + result.toString());


This is the function "postObjects" in TMSApplet (which is an abstract class
that LoginApplet inherits from)

  protected ObjectInputStream postObjects(URL url, Serializable objects[])
throws Exception
   {
     System.err.println("Url passed in is: " + url );
     URLConnection connection = url.openConnection();
     connection.setDoInput(true);
     connection.setDoOutput(true);
     connection.setUseCaches(false);
     connection.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded");

     ObjectOutputStream out = new
ObjectOutputStream(connection.getOutputStream());
     int numberOfObjects = objects.length;
     for(int i = 0; i < numberOfObjects; i++)
     {
       out.writeObject(objects[i]);
     }
     out.flush();
     out.close();
     System.err.println("sent objects!");
     ObjectInputStream in = new
ObjectInputStream(connection.getInputStream()); //Line 66!!!
     System.err.println("input stream created");
     return in;
   }

In the exception it says it's raised at line 66, but why?? You notice that
the objects were sent, because the debugging code was printed to the applet
console "sent objects". But the applet has not done a readObject() yet..so
why the exception? How can I stop this happening. Also the servlet should
print out a line to the servlet console telling me that it received the two
String's i sent - but that didn't happen either. Maybe the objects didn't
get sent, maybe the connection wasn;t made in the first place.. but
strange..why not? http://localhost:8080/servlet/LoginServlet/ certainly
does exist.

Can anyone please help me, please?

Regards,
Nelson

___________________________________________________________________________
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

Reply via email to