Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Read timed out exception in Servlet

1 view
Skip to first unread message

Deb

unread,
Jul 26, 2002, 2:05:41 PM7/26/02
to
I am getting the following exception when performing a POST to a
servlet from an applet. I am using something similar to Jason Hunter's
HttpMessage class to communicate between the applet and servlet. The
exception is intermittent, and occurs only when the servlet is run
within a Weblogic server cluster. I have included code snippets from
the applet and servlet. Any pointers as to why this exception happens
is very much appreciated.

Thank you.
TJ


Server configuration:
AIX v 4.3
WebLogic Server 6.1 SP2 12/18/2001 11:13:46 #154529

Client configuration:
Windows 2000

Exception (server-side):
<Jul 25, 2002 4:10:03 PM EDT> <Error> <HTTP>
<[WebAppServletContext(1998712728,ftjwa,/ftjwa)] Servlet failed with
IOException
java.io.InterruptedIOException: Read timed out
at java.net.SocketInputStream.socketRead(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java(Compiled
Code))
at weblogic.servlet.internal.PostInputStream.read(PostInputStream.java(Compiled
Code))
at weblogic.servlet.internal.ServletInputStreamImpl.read(ServletInputStreamImpl.java(Compiled
Code))
at java.io.ObjectInputStream.bufferData(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.bufferData(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readUTF(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readUTF(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectStreamClass.read(ObjectStreamClass.java(Compiled
Code))
at java.io.ObjectInputStream.readClassDescriptor(ObjectInputStream.java:897)
at java.io.ObjectInputStream.inputClassDescriptor(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.util.Hashtable.readObject(Hashtable.java(Compiled
Code))
at java.lang.reflect.Method.invoke(Native Method)
at java.io.ObjectInputStream.invokeObjectReader(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputClassFields(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.defaultReadObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.inputObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at java.io.ObjectInputStream.readObject(ObjectInputStream.java(Compiled
Code))
at com.acme.oss.web.txServlet.doPost(txServlet.java:213)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:265)
at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:200)
at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:2495)
at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2204)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:139)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
>

Exception (client side):
java.io.FileNotFoundException:
http://101.770.15.12/oss
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:549)
at com.acme.oss.util.HttpMessage.sendPostMessage(HttpMessage.java:183)
...
...

Code snippet:

========== begin code ==================

/**
* Servlet side code
*/
public void doPost (HttpServletRequest request, HttpServletResponse
response)
throws ServletException, IOException
{
try
{
ObjectInputStream in = new ObjectInputStream
(request.getInputStream());
Object obj = in.readObject();
in.close();

... Do something with obj ...
...
...
ASerializableClass ret = new ASerializableClass();
... do something to ret ...
...
...

ObjectOutputStream out = new
ObjectOutputStream(res.getOutputStream());
out.writeObject(ret);
out.flush();
out.close(); // I have tried commenting
// this line. I still get the exception
}


/**
* Applet side code
*/
public static void doIt()
{
try
{
HttpMessage msg = new HttpMessage(a_url);
RemoteMessage rm = new RemoteMessage();

... set some attributes in rm ...

InputStream in = msg.sendPostMessage(rm); <--- stack trace shows
exception thrown
from here

ObjectInputStream res = new ObjectInputStream(in);
Object obj = res.readObject();
rm = (RemoteMessage) obj;
...
}
catch (Exception e)
{
e.printStackTrace();
...
}
}

HttpMessage.java (used from applet to POST)
------------------------------------------------

public HttpMessage(URL servlet) {
this.servlet = servlet;
}

public InputStream sendPostMessage(Serializable obj) throws
IOException {
URLConnection con = servlet.openConnection();

// Prepare for both input and output
con.setDoInput(true);
con.setDoOutput(true);

// Turn off caching
con.setUseCaches(false);

// Set the content type to be application/x-java-serialized-object
con.setRequestProperty("Content-Type",
"application/x-java-serialized-object");

// Send headers
sendHeaders(con);

// Write the serialized object as post data
ObjectOutputStream out = new
ObjectOutputStream(con.getOutputStream());
out.writeObject(obj);
out.flush();
out.close();

return con.getInputStream();
}
...
...

========== end code ==================

0 new messages