У меня есть приложение с клиент-серверной архитектурой. Клиентская сеть Java использования Запускает с Java Swing / AWT и sert используют сервер HTTP / Сервлет с Tomcat. Коммуникация сделана из сериализации объектов, создайте ObjectOutput, сериализирует массив байтов, и отправьте к серверу, соответственно названному ObjectInputStream, и десериализовывает.
Приложение следует за передачей правильно к определенному времени параллелизма где, начиная показывать ошибку "тайм-аут чтения SocketException". erro происходит, когда сервер вызывает метод ObjectInputStream.getObject () в моем сервлете doPost метод.
Кот приедет медленный, и ошибки начинают уменьшать время отклика сервера до времени катастрофического отказа, где я должен перезапустить сервер и после того, как все работает.
Кто-то прошел эту проблему?
Клиентский код
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 () - то, где ошибка
Вы не дали нам много информации, особенно о стороне клиента. Но я подозреваю, что на стороне клиента:
Таинственный.
Судя по вашему обновленному вопросу, ничего из вышеперечисленного не похоже. Вот пара других возможностей:
Другое возможное объяснение заключается в том, что у вас есть утечка памяти, и что замедление вызвано тем, что сборщик мусора занимает все больше и больше времени по мере того, как у вас заканчивается память. Это будет отображаться в журналах GC, если они у вас включены.