У меня есть однопоточное клиентское приложение на основе Apache CXF 3.0.2, Java SE7. Он читает записи, вызывает веб-сервис и спит в al oop.
. При использовании Connection:Close header
по запросу клиента Apache CXF пытается использовать постоянное соединение предыдущей итерации, выбрасывает Unexpected end of file from server
исключение и затем продолжает l oop.
First Request: success
Second Request: Unexpected end of file from server
Third Request: success
Fourth Request: Unexpected end of file from server
Альтернативные запросы получают исключение. Я подозреваю, что он пытается повторно использовать постоянное соединение предыдущей успешной итерации, когда он получает неожиданный конец файла с сервера, он удаляет запись соединения. Следующая итерация не видит доступное соединение и, следовательно, пытается создать его с самого начала и проходит успешно. Есть ли какая-либо конфигурация, которую я могу сделать на клиенте, такая, что клиент делает недействительной запись соединения сразу после получения ответа.
Unexpected end of file from server
at sun.reflect.GeneratedConstructorAccessor33.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.mapException(HTTPConduit.java:1359)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1343)
at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:638)