Axis2 SocketTimeoutException: тайм-аут чтения

Я пытаюсь создать клиент SOAP для доступа к службе NDFD SOAP Национальной службы погоды. Я использую Axis2 1.6.2 с кодом, созданным с помощью wsdl2java.

Каждый раз, когда я пытаюсь получить данные, я получаю сообщение AxisFault о том, что время чтения истекло. Я попытался увеличить время ожидания до 500 с, но все, что он делает, это заставляет его ждать дольше, прежде чем выдавать ту же ошибку.

Exception in thread "main" org.apache.axis2.AxisFault: [was class java.net.SocketTimeoutException] Read timed out
at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
at gov.weather.graphical.xml.dwmlgen.wsdl.ndfdxml_wsdl.NdfdXMLStub.fromOM(NdfdXMLStub.java:26499)
at gov.weather.graphical.xml.dwmlgen.wsdl.ndfdxml_wsdl.NdfdXMLStub.nDFDgen(NdfdXMLStub.java:595)
at he.andrew.ndfd.NDFDData.getData(NDFDData.java:47)
at he.andrew.ndfd.NDFDData.main(NDFDData.java:25)
Caused by: java.lang.RuntimeException: [was class java.net.SocketTimeoutException] Read timed out
at com.ctc.wstx.util.ExceptionUtil.throwRuntimeException(ExceptionUtil.java:18)
at com.ctc.wstx.sr.StreamScanner.throwLazyError(StreamScanner.java:731)
at com.ctc.wstx.sr.BasicStreamReader.safeFinishToken(BasicStreamReader.java:3657)
at com.ctc.wstx.sr.BasicStreamReader.getText(BasicStreamReader.java:809)
at com.ctc.wstx.sr.BasicStreamReader.getElementText(BasicStreamReader.java:679)
at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.getElementText(XMLStreamReaderWrapper.java:100)
at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.getElementText(XMLStreamReaderWrapper.java:100)
at org.apache.axiom.om.impl.llom.SwitchingWrapper.getElementText(SwitchingWrapper.java:936)
at javax.xml.stream.util.StreamReaderDelegate.getElementText(Unknown Source)
at org.apache.axiom.util.stax.wrapper.XMLStreamReaderWrapper.getElementText(XMLStreamReaderWrapper.java:100)
at org.apache.axiom.util.stax.debug.XMLStreamReaderValidator.getElementText(XMLStreamReaderValidator.java:75)
at gov.weather.graphical.xml.dwmlgen.wsdl.ndfdxml_wsdl.NdfdXMLStub$NDFDgenResponse$Factory.parse(NdfdXMLStub.java:5612)
at gov.weather.graphical.xml.dwmlgen.wsdl.ndfdxml_wsdl.NdfdXMLStub.fromOM(NdfdXMLStub.java:26353)
... 3 more
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at java.io.BufferedInputStream.read1(Unknown Source)
at java.io.BufferedInputStream.read(Unknown Source)
at org.apache.commons.httpclient.WireLogInputStream.read(WireLogInputStream.java:69)
at org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStream.java:182)
at java.io.FilterInputStream.read(Unknown Source)
at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:108)
at java.io.FilterInputStream.read(Unknown Source)
... more not included

Ошибка, похоже, такая же, как и здесь: ">Исключение в потоке main org.apache.axis2.AxisFault: истекло время чтения. Однако я не совсем понимаю ответы на этот вопрос.

Последнее замечание. Чтобы избежать «Ошибка 411: требуется длина», мне пришлось отключить опцию «Разбивка». Я не уверен, что это актуально.

Кто-нибудь знает, в чем может быть проблема?


person ecnerwal    schedule 19.08.2012    source источник
comment
Тайм-аут чтения означает, что удаленная служба не вернула ответ на ваш запрос, и ваш клиент в конце концов перестал ждать. Я не знаю, может ли кто-нибудь сказать вам конкретно, что не так с этой службой, кроме того факта, что она ненадежна.   -  person Kenster    schedule 21.08.2012


Ответы (1)


Я столкнулся с этой ошибкой в ​​​​проекте, и основной причиной была настройка прокси-сервера. Мне пришлось изменить прокси-сервер, чтобы разрешить связь со службой, которую я пытался использовать. Мой код работал как часть пользовательского приложения, которое использовало собственный прокси. Так что это тоже можно попробовать.

person Shawn    schedule 09.09.2013