我有一个客户端服务器架构的应用程序.客户端使用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();
Run Code Online (Sandbox Code Playgroud)
服务器代码
ObjectInputStream input = new ObjectInputStream(_request.getInputStream());
String method = input.readUTF();
parameters = input.readObject();
Run Code Online (Sandbox Code Playgroud)
input.readObject()是错误的位置