Я создал клиента WebService с помощью мастера Eclipse Wizard. Он отлично работает, когда я использую стандартные java-классы, но когда я пытаюсь использовать его в GWT WebApp, я получаю эту ошибку:
} catch (ApiProxy.ApiDeadlineExceededException e) {
throw new SocketException("Socket operation timed out: " + e.getMessage());
}
С помощью этого сообщения:
java.net.SocketException: Socket operation timed out: The API call remote_socket.Receive() took too long to respond and was cancelled.
Вопрос 1: Есть ли способ увеличить этот тайм-аут ApiDeadLine? Дело в том, что я отлаживаю и, к сожалению, соединение происходит медленно, поэтому ответы будут длиться не менее 10-20 секунд.
Вопрос 2: Должен ли я использовать другую форму для связи с WebService?
Вопрос 3: Должен ли я использовать для этого какие-то асинхронные потоки?
Благодарю!
Кажется, что вы можете увеличить таймаут с помощью этого:
com.google.apphosting.api.ApiProxy.Environment env = ApiProxy.getCurrentEnvironment();
env.getAttributes().put("com.google.apphosting.api.ApiProxy.api_deadline_key", 9999 );