我有一个具有客户端服务器架构的应用程序。客户端使用 Java Web Start 和 Java Swing / AWT,sert 使用 HTTP 服务器 / Servlet 和 Tomcat。通信是从对象的序列化开始的,创建一个 ObjectOutput 序列化一个字节数组并发送到服务器,分别称为 ObjectInputStream 和反序列化。
应用程序遵循正确通信到某个并发时间,开始显示错误“SocketException read timeout”。当服务器在我的 servlet doPost 方法中调用方法 ObjectInputStream.getObject() 时会发生错误。
tomcat会变慢,错误开始减少服务器响应时间,直到崩溃时间我必须重新启动服务器并且一切正常之后。
有人经历过这个问题吗?
客户代码
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStream os = conn.getOutputStream();
ObjectOutputStream oss = new ObjectOutputStream(os);
oss.writeUTF("protocol header sample");
oss.writeObject(_parameters);
oss.flush();
oss.close();
服务器代码
ObjectInputStream input = new ObjectInputStream(_request.getInputStream());
String method = input.readUTF();
parameters = input.readObject();
input.readObject() 是错误所在