Mam aplikację z architekturą serwera klienta. Klient korzysta z Java Web Start z Java Swing/AWT, a serwer używa serwera HTTP/Servlet z Tomcat. Komunikacja jest dokonywana z serializacji obiektów, Utwórz obiekt ObjectOutput serializuje tablicę bajtów i wysyła na serwer , odpowiednio, nazwany ObjectInputStream i deserializuje.java.net.SocketTimeoutException: upłynął limit czasu
Aplikacja po prawidłowym komunikowaniu się z określonym czasem współbieżności , rozpoczynając wyświetlanie błędu "Wyjątek czasu oczekiwania SocketException" na . Błąd pojawia się, gdy serwer wywołuje metodę ObjectInputStream.getObject() w mojej metodzie doPost serwletu.
Tomcat będzie działał wolno, a błędy zaczną skracać czas odpowiedzi serwera do czasu awarii, w którym muszę zrestartować serwer i po wszystkim.
Ktoś przeszedł ten problem?
kod klienta
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();
Code Server
ObjectInputStream input = new ObjectInputStream(_request.getInputStream());
String method = input.readUTF();
parameters = input.readObject();
input.readObject() to gdzie jest błąd
Czy możesz napisać jakiś kod? – Enrique
To jest parametr linux tcp? Jak rozmiar memu bufora, maks. Otwarte pliki lub inne? –
Czy ilość czasu, która upływa przed SocketException 20 minut lub dłużej? (jeśli pamiętam standardowy czas, w którym gniazdo TCP/IP będzie czekać, zanim upłynie limit czasu, jeśli nie będzie żadnego połączenia)? Po tym wszystkim wyjątek mówi "odczytać limit czasu" również może to mieć coś wspólnego z asynchronicznym charakterem sieci? – Wintermut3