2016-05-04 12 views
0

Я действительно застрял в проблеме 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) 
+0

Поскольку JRE идентичны, я сначала начал, гарантируя, что обе системы AIX имеют точно такой же уровень исправления OS (или что-то такое, что его называет IBM). Вероятно, что-то очень тонкое различие между двумя системами. Или сообщение может быть неправильным, и где-то есть аппаратная проблема. Вы проверяли журналы системных событий на наличие каких-либо проблем? –

+0

Это ошибка в IBM JDK и должна быть отправлена ​​в IBM. – EJP

+0

(Java-фреймворки, как известно, не справляются с сетевыми проблемами должным образом, в реальной жизни потери связи нормальные, их нужно обрабатывать без особого шума). –

ответ

0

Возможно, это проблема с брандмауэром. Коммуникация резко обрезается каким-то брандмауэром, поэтому сокет закрывается ОС, что дает ошибку при попытке прочитать из нее.