Это исключение является обычным явлением в случаях, когда данная служба не работает. Но этот случай отличается: У меня есть маршрут верблюда, на который я написал интеграционные тесты. Сам маршрут работал в производственной-среде, но в тестах, издевались конечная точка не вызывается и маршрут завершается с (укороченный):Apache camel jetty RestletOperationException при вызове запроса 1001, когда высмеивается конечная точка рестарта
java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method) ~[na:1.8.0_91]
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) ~[na:1.8.0_91]
at java.net.SocketInputStream.read(SocketInputStream.java:170) ~[na:1.8.0_91]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_91]
at org.apache.http.impl.io.AbstractSessionInputBuffer.fillBuffer(AbstractSessionInputBuffer.java:160) ~[httpcore-4.4.1.jar:4.4.1]
...
at org.restlet.ext.httpclient.internal.HttpMethodCall.sendRequest(HttpMethodCall.java:339) ~[org.restlet.ext.httpclient-2.3.5.jar:na]
at org.restlet.engine.adapter.ClientAdapter.commit(ClientAdapter.java:105) [org.restlet-2.3.5.jar:na]
at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:119) [org.restlet-2.3.5.jar:na]
at org.restlet.Client.handle(Client.java:153) [org.restlet-2.3.5.jar:na]
at org.restlet.Restlet.handle(Restlet.java:275) [org.restlet-2.3.5.jar:na]
at org.apache.camel.component.restlet.RestletProducer.process(RestletProducer.java:79) [camel-restlet-2.16.0.jar:2.16.0]
...
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_91]
15:35:38.913 [qtp995381766-39] WARN o.e.jetty.servlet.ServletHandler - /data/v2/users/17
org.apache.camel.RuntimeCamelException: org.eclipse.jetty.io.EofException: Early EOF
at org.apache.camel.http.common.HttpMessage.createBody(HttpMessage.java:68) ~[camel-http-common-2.16.0.jar:2.16.0]
at org.apache.camel.impl.MessageSupport.getBody(MessageSupport.java:41) ~[camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.http.common.DefaultHttpBinding.readRequest(DefaultHttpBinding.java:97) ~[camel-http-common-2.16.0.jar:2.16.0]
..
Caused by: org.eclipse.jetty.io.EofException: Early EOF
at org.eclipse.jetty.server.HttpInput$3.noContent(HttpInput.java:506) ~[jetty-server-9.2.10.v20150310.jar:9.2.10.v20150310]
at org.eclipse.jetty.server.HttpInput.read(HttpInput.java:124) ~[jetty-server-9.2.10.v20150310.jar:9.2.10.v20150310]
at java.io.InputStream.read(InputStream.java:101) ~[na:1.8.0_91]
at org.apache.camel.util.IOHelper.copy(IOHelper.java:196) ~[camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.util.IOHelper.copy(IOHelper.java:169) ~[camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:218) ~[camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.util.IOHelper.copyAndCloseInput(IOHelper.java:214) ~[camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.http.common.HttpHelper.readResponseBodyFromInputStream(HttpHelper.java:244) ~[camel-http-common-2.16.0.jar:2.16.0]
at org.apache.camel.http.common.HttpHelper.readRequestBodyFromServletRequest(HttpHelper.java:195) ~[camel-http-common-2.16.0.jar:2.16.0]
at org.apache.camel.http.common.DefaultHttpBinding.parseBody(DefaultHttpBinding.java:492) ~[camel-http-common-2.16.0.jar:2.16.0]
at org.apache.camel.http.common.HttpMessage.createBody(HttpMessage.java:66) ~[camel-http-common-2.16.0.jar:2.16.0]
... 23 common frames omitted
15:35:38.949 [Restlet-167550865] ERROR o.a.c.processor.DefaultErrorHandler - Failed delivery for (MessageId: ID-nb-mensik-61516-1466775296892-0-3 on ExchangeId: ID-nb-mensik-61516-1466775296892-0-2). Exhausted after delivery attempt: 1 caught: org.apache.camel.component.restlet.RestletOperationException: Restlet operation failed invoking http://localhost:9000/data/v2/users/17?projection=full with statusCode: 1001 /n responseBody:HTTP/1.1 - Communication Error (1001) - The connector failed to complete the communication with the server
org.apache.camel.component.restlet.RestletOperationException: Restlet operation failed invoking http://localhost:9000/data/v2/users/17?projection=full with statusCode: 1001 /n responseBody:HTTP/1.1 - Communication Error (1001) - The connector failed to complete the communication with the server
at org.apache.camel.component.restlet.RestletProducer.populateRestletProducerException(RestletProducer.java:232) ~[camel-restlet-2.16.0.jar:2.16.0]
at org.apache.camel.component.restlet.RestletProducer.process(RestletProducer.java:84) ~[camel-restlet-2.16.0.jar:2.16.0]
at org.apache.camel.component.restlet.RestletProducer.process(RestletProducer.java:98) ~[camel-restlet-2.16.0.jar:2.16.0]
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:141) [camel-core-2.16.0.jar:2.16.0]
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:460) [camel-core-2.16.0.jar:2.16.0]
Я был удивлен, что издеваться слушает и реагирует на данном веб-сайте: http://localhost:9000/data/v2/users/17?projection=full но это не получал никакого ответа во время тестов.
Более подробное описание: Существует три модуля (назовите их A, B и C), каждый из которых работает в своем встроенном причале. Я хочу покрыть модуль интеграционных тестов A, и поэтому мне нужно было издеваться над всеми вызовами от модуля A к модулям B и C. Я получил правильное название mock of B, но mock C не был вызван и тест завершился неудачно с исключением выше. Во время испытаний оконечных издевались на С (который не был достижим тестами) были достижимы с помощью завиток звонков с одинаковыми заголовками и т.д ..