Кроме того, вероятно, есть некоторые другие интересные различия между вашей системой Windows и сервером Linux. Вы подключаетесь к тому же URL? Сетевой конфиг / брандмауэр похож? Возможно, вы можете попробовать запустить Linux локально, чтобы сузить его. Я не ожидаю, что это различие между Java на вдовах и Linux, которое является причиной этого; если вы не используете разные версии и одна из них имеет ошибку.
инающий, когда дело доходит до HTTP-соединений. В настоящее время я работаю с SAAJ api, чтобы иметь мой клиент на основе мыла, где для обработки таймаутов я в конечном итоге использовал URLStreamHandler для свойств HTTP-соединения с конечными точками.
Проблема в том, что этот тайм-аут работает для моей системы на базе Windows, однако он не работает для сервера Linux, на котором он будет запущен.
ниже приведен код для извлечения конечной точки с заданными свойствами. Это HTTP-соединение POST.
URL endpoint = new URL (null, url, new URLStreamHandler () {
protected URLConnection openConnection (URL url) throws IOException {
// The url is the parent of this stream handler, so must create clone
URL clone = new URL (url.toString ());
HttpURLConnection connection = (HttpURLConnection) clone.openConnection();
connection.setRequestProperty("Content-Type",
"text/xml");
connection.setRequestProperty("Accept",
"application/soap+xml, text/*");
// If we cast to HttpURLConnection, we can set redirects
// connection.setInstanceFollowRedirects (false);
connection.setDoOutput(true);
connection.setConnectTimeout(3 * 1000);
connection.setReadTimeout(3 * 1000);
return connection;
для части SAAJ API ниже приведена довольно простая реализация
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory
.newInstance();
soapConnection = soapConnectionFactory.createConnection();
is = new ByteArrayInputStream(command.getBytes());
SOAPMessage request = MessageFactory.newInstance(
SOAPConstants.SOAP_1_1_PROTOCOL).createMessage(
new MimeHeaders(), is);
MimeHeaders headers = request.getMimeHeaders();
headers.addHeader("Content-Type", "text/xml");
request.saveChanges();
ByteArrayOutputStream out = new ByteArrayOutputStream();
request.writeTo(out);
soapResponse = soapConnection.call(request, endpoint);
Это то, что системные свойства будут влиять на время ожидания соединения или чтения. Если так, пожалуйста, дайте мне знать, что может вызвать такое поведение.