You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by "Dicheva, Darina" <di...@wssu.edu> on 2003/12/15 17:17:10 UTC
Problems with sending a serialized object from servlet to applet
using Tomcat
Hello,
I have a problem sending a serialized object (instance of a class that is
not part of the Java Core API) from a servlet to an applet. I don't have a
problem to send a serialized String object though - everything works fine
(even in both directions). But when I replace the String object to be sent
by the servlet to the applet with an object of a class defined by me,
'inputFromServlet.readObject()' is just hanging -- no exception, no error,
nothing. The servlet itself seems to have finished its work completely. I
have copied the class definition (of the object being serialized) in the
applet's directory.
I use Tomcat 4.1.29 and j2sdk1.4.2.
Any idea will be highly appreciated. Thanks in advance.
Darina
----------------------
In the applet I have:
try {
URL servletURL = new URL(getCodeBase(), servletLocation2);
HttpURLConnection servletConnection = (HttpURLConnection)
servletURL.openConnection();
servletConnection.setDoOutput(true);
servletConnection.setDoInput(true);
servletConnection.setUseCaches(false);
servletConnection.setDefaultUseCaches(false);
servletConnection.setRequestProperty("Content-type","application/x-java-seri
alized-object");
servletConnection.setRequestMethod("POST"); //if not included
the defaul is the GET method
log("Applet Connected");
// Writing to servlet
// Write the message to the servlet
OutputStream os = servletConnection.getOutputStream(); // returns
an output stream that writes to this connection
ObjectOutputStream outputToServlet = new ObjectOutputStream(os);
// serialize the object
outputToServlet.writeObject("Message To Server");
outputToServlet.flush();
outputToServlet.close();
log("Writing Complete.");
// Reading from servlet
InputStream is = servletConnection.getInputStream();
ObjectInputStream inputFromServlet = new ObjectInputStream(is);
log("Object Input stream created");
Object obj = inputFromServlet.readObject();
// HANGS UP HERE !!
Topic response = (Topic)obj;
log("Finish reading data");
inputFromServlet.close();
}
catch ...
----------------------
In the servlet I have:
public void doPost(HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException {
try
{
InputStream is = request.getInputStream(); //get an input stream
that reads from from this open connection
ObjectInputStream inputFromApplet = new ObjectInputStream(is);
show("Servlet Connected");
String appStr = (String) inputFromApplet.readObject();
show("Applet String: " + appStr);
inputFromApplet.close();
// Ctreate a topic
Topic topic = new Topic("Number1 Systems", "tt-NumberSystem1",
"N1", "Number1 System", "N1");
show(topic.toString());
response.setContentType("application/x-java-serialized-object");
OutputStream os = response.getOutputStream(); // returns an output
stream that writes to this connection
ObjectOutputStream outputToApplet = new ObjectOutputStream(os);
show("Servlet connected");
outputToApplet.writeObject(topic);
outputToApplet.flush();
outputToApplet.close();
show("Data transmission complete.");
}
catch ...
Can somebody help??? I am struggling with this problem for more than a week
...