Я действительно застрял в проблеме AIX java. У меня есть проблема, которая не соответствует другим проблемам в SO и в Интернете.AIX java.net.SocketException: системный вызов получил недопустимый параметр
Мой код приложения отлично работает на другом сервере AIX с тем же самым точным JRE - IBM AIX Java 1.8, но не работает на сервере, в котором я нуждаюсь.
Оба сервера - это AIX 7.1, работающие с одним JAR и тем же JRE из того же tarball.
Я получаю следующую ошибку при использовании Spring RestTemplate.exchange() для извлечения и развязки некоторых JSON.
Это должен быть вопрос конфигурации сервера, но я очень застрял и буду признателен за любую помощь!
Caused by: java.net.SocketException: A system call received a parameter that is not valid.
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:127)
at java.net.SocketInputStream.read(SocketInputStream.java:181)
at java.net.SocketInputStream.read(SocketInputStream.java:152)
at com.ibm.jsse2.a.a(a.java:209)
at com.ibm.jsse2.a.b(a.java:41)
at com.ibm.jsse2.a.a(a.java:193)
at com.ibm.jsse2.as.a(as.java:268)
at com.ibm.jsse2.as.a(as.java:745)
at com.ibm.jsse2.e.read(e.java:56)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:257)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:297)
at java.io.BufferedInputStream.read(BufferedInputStream.java:356)
at sun.net.www.http.ChunkedInputStream.readAheadBlocking(ChunkedInputStream.java:564)
at sun.net.www.http.ChunkedInputStream.readAhead(ChunkedInputStream.java:621)
at sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:708)
at java.io.FilterInputStream.read(FilterInputStream.java:144)
at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3352)
at java.io.FilterInputStream.read(FilterInputStream.java:144)
at java.io.PushbackInputStream.read(PushbackInputStream.java:197)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.loadMore(UTF8StreamJsonParser.java:178)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.parseEscapedName(UTF8StreamJsonParser.java:1749)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.slowParseName(UTF8StreamJsonParser.java:1654)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser._parseName(UTF8StreamJsonParser.java:1484)
at com.fasterxml.jackson.core.json.UTF8StreamJsonParser.nextToken(UTF8StreamJsonParser.java:700)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:120)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:149)
at com.fasterxml.jackson.databind.deser.std.ObjectArrayDeserializer.deserialize(ObjectArrayDeserializer.java:18)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:2993)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2158)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:222)
Поскольку JRE идентичны, я сначала начал, гарантируя, что обе системы AIX имеют точно такой же уровень исправления OS (или что-то такое, что его называет IBM). Вероятно, что-то очень тонкое различие между двумя системами. Или сообщение может быть неправильным, и где-то есть аппаратная проблема. Вы проверяли журналы системных событий на наличие каких-либо проблем? –
Это ошибка в IBM JDK и должна быть отправлена в IBM. – EJP
(Java-фреймворки, как известно, не справляются с сетевыми проблемами должным образом, в реальной жизни потери связи нормальные, их нужно обрабатывать без особого шума). –