Raf*_*oto 8 java sockets tomcat objectinputstream socketexception
我有一个客户端服务器架构的应用程序.客户端使用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()是错误的位置
Ste*_*n C 10
您还没有给我们提供太多信息,特别是关于客户端的信息.但我怀疑客户方是:
神秘.
根据您更新的问题,它看起来不像以上那样.以下是其他几种可能性:
另一个可能的解释是你有一个内存泄漏,并且由于GC在内存不足时花费的时间越来越多,导致速度减慢.如果已启用它们,它将显示在GC日志中.
归档时间: |
|
查看次数: |
60146 次 |
最近记录: |