I o error on post request for

higuys! I have a problem with restTemplate right now. There are two requests while using this restTemplate. First one is simple like login. Other one(the problem) is sending quite long text with post

higuys!

I have a problem with restTemplate right now.
There are two requests while using this restTemplate.
First one is simple like login.
Other one(the problem) is sending quite long text with post body.

If I send the request on Postman, it works well.
I think the length of string might be the problem, but I’m not sure.

Request Parameter is

{
    "name"  : "test",
    "age"   : 28,
    "gender" : 2,
    "type"  : 1,
    "store" : "test2",
    "imgLen" : 2876,
    "img" : "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"

}

Source code is

HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
            factory.setConnectTimeout(timeout); 
            factory.setReadTimeout(timeout);
            RestTemplate restTemplate = new RestTemplate(factory);

            //body 
            MultiValueMap<String, String> reqBody = new LinkedMultiValueMap<>();
            int i=0;
            if(reqParam != null) {
                for (Object key : reqParam.keySet()) {
                    i++;
                    String keyString = key.toString();
                    reqBody.add(keyString, reqParam.getString(keyString));
                }
            }
            //header 
            HttpHeaders header = new HttpHeaders();
            header.setContentType(MediaType.APPLICATION_JSON);
            if(reqHeader != null) {
                for (Object key : reqHeader.keySet()) {
                    String keyString = key.toString();
                    String value = reqHeader.getString(keyString);
                    header.set(keyString, value);
                }
            }
            HttpEntity<?> entity = new HttpEntity<>(reqBody, header);

            UriComponents uri = UriComponentsBuilder.fromHttpUrl(host+reqUri).build();


            log.append("n---------[ BI-API -> Face Manager API ]-------------------------------------------------------------");
            log.append("nRequest URL       : ").append(uri);
            log.append("nRequest URI       : ").append(reqUri);
            log.append("nmethod            : ").append(method);
            log.append("nRequest Body      : ").append(ObjectUtil.getAllParameters(reqParam));

//            ResponseEntity<Map> resultMap = restTemplate.exchange(uri.toString(), HttpMethod.POST, entity, Map.class);
            ResponseEntity<Map> resultMap = restTemplate.postForEntity(uri.toString(), entity, Map.class); 

The error is

org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://{ip}:{port}/face/emp": Connection reset; nested exception is java.net.SocketException: Connection reset
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:785)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:711)
    at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:468)
    at com.lguplus.bi.api.faceMgr.FaceMgrApi.callAPI(FaceMgrApi.java:116)
    at com.lguplus.bi.api.service.user.UserService.sendFaceInfo(UserService.java:549)
    at com.lguplus.bi.api.controller.user.UserController.requestCreateUser(UserController.java:179)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1060)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:962)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at com.lguplus.bi.api.filter.RequestFilter.doFilter(RequestFilter.java:201)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)
    at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
    at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
    at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1707)
    at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:210)
    at java.net.SocketInputStream.read(SocketInputStream.java:141)
    at org.apache.http.impl.conn.LoggingInputStream.read(LoggingInputStream.java:87)
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137)
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153)
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:140)
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:57)
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259)
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163)
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:167)
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273)
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125)
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:271)
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:184)
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:88)
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110)
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:55)
    at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:87)
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48)
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:66)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:776)
    ... 58 more

The log is

021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(255) : Executing request POST /face/emp HTTP/1.1
2021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(260) : Target auth state: UNCHALLENGED
2021-05-21 16:10:05 [DEBUG] [MainClientExec.java]execute(266) : Proxy auth state: UNCHALLENGED
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(124) : http-outgoing-0 >> POST /face/emp HTTP/1.1
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept: application/json, application/*+json
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Content-Type: application/json
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> api-key: eV1GXF5neW0fd2NlMDkzNDk0MGludGVsbGk=
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept-Charset: utf-8
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Content-Length: 2973
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Host: 172.16.2.36:5214
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Connection: Keep-Alive
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5 (Java/1.8.0_191)
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]onRequestSubmitted(127) : http-outgoing-0 >> Accept-Encoding: gzip,deflate
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "POST /face/emp HTTP/1.1[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept: application/json, application/*+json[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Content-Type: application/json[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "api-key: eV1GXF5neW0fd2NlMDkzNDk0MGludGVsbGk=[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept-Charset: utf-8[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Content-Length: 2973[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Host: 172.16.2.36:5214[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Connection: Keep-Alive[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.5 (Java/1.8.0_191)[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "Accept-Encoding: gzip,deflate[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(72) : http-outgoing-0 >> "[r][n]"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(86) : http-outgoing-0 >> "{"id":["test"],"age":["28"],"gender":["1"],"store":["[0xea][0xb0][0x95][0xeb][0x82][0xa8][0xeb][0xa7][0xa4][0xec][0x9e][0xa5]"],"imgLen":["2816"],"img":["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"]}"
2021-05-21 16:10:05 [DEBUG] [Wire.java]wire(86) : http-outgoing-0 << "[read] I/O error: Connection reset"
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]close(79) : http-outgoing-0: Close connection
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]shutdown(87) : http-outgoing-0: Shutdown connection
2021-05-21 16:10:05 [DEBUG] [ConnectionHolder.java]abortConnection(128) : Connection discarded
2021-05-21 16:10:05 [DEBUG] [LoggingManagedHttpClientConnection.java]close(79) : http-outgoing-0: Close connection
2021-05-21 16:10:05 [DEBUG] [PoolingHttpClientConnectionManager.java]releaseConnection(320) : Connection released: [id: 0][route: {}->http://ip:5214[total kept alive: 0; route allocated: 0 of 2; total allocated: 0 of 20]
org.springframework.web.client.ResourceAccessException: I/O error on POST request for "http://ip:5214/face/emp": Connection reset; nested exception is java.net.SocketException: Connection reset
2021-05-21 16:10:05 [DEBUG] [AbstractMessageConverterMethodProcessor.java]writeWithMessageConverters(268) : Using 'application/json', given [*/*] and supported [application/json, application/*+json, application/json, application/*+json]
2021-05-21 16:10:05 [DEBUG] [LogFormatUtils.java]traceDebug(91) : Writing [{}]

How can I solve this problem?

Thank you!

1. Cause of error:

When the resttemplate is used to call the third-party API, the local test is normal, but when it is deployed to the server, it will report: Dan, 19:06 org.springframework.web . client.ResourceAccessException : I/O error on POST request for "XXX": No route to host (Host unreachable); nested exception is java.net.NoRouteToHostException : no route to host (host unreachable) , at first, I thought that the timeout was not set, so I configured it through online methods

 SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
 requestFactory.setConnectTimeout(10*1000);
 requestFactory.setReadTimeout(10*1000);
 RestTemplate rest = new RestTemplate(requestFactory);	

Deployment or error

2. Solutions

Finally, the interface setting the timeout time is replaced with httpcomponentsclienthttprequestfactory to solve the problem successfully

 HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
 requestFactory.setConnectTimeout(10*1000);
 requestFactory.setReadTimeout(10*1000);
 RestTemplate rest = new RestTemplate(requestFactory);

Read More:

  • Disk BLK_ update_ request: I/O error
  • Sync with Gradle for project ‘XXXX‘ failed: Connection timed out: connect
  • Putty:Network error:Connection timed out
  • [resolved] exception java.net.ConnectException : Error opening socket to server Connection timed out.
  • In the HTML page request Ajax times 400 error, solve Yii submit post form 400 error, and Ajax post request 400 problem (example code)
  • Ubuntu 20.04 GPG: KeyServer receive failed: connection timed out when installing ROS configuration key
  • Error: JMeter monitors Linux system performance java.net.ConnectException : Connection timed out: connect
  • Debian/Ubuntu uses proxy for gpg and apt-key-error resolution: gpg: keyserver receive failed: Connection timed out
  • RTMP_Connect0, failed to connect socket. 110 (Connection timed out)
  • [nodejs] error request aborted after request routing in post mode
  • Troubleshooting of “disk I / O error” after startup
  • coredns [ERROR] plugin/errors: 2 read udp : i/o timeout
  • An I/O operation initiated by the Registry failed unrecoverably
  • Synergy Ubuntu 18 + win7 timed out or new client is unresponsive
  • java.sql.SQLException : IO error: socket read timed out!
  • NBU recovery report error socket read failed: errno = 119-System call timed out
  • java.sql.SQLException : IO exception: socket read timed out
  • Jetty9 change post request length
  • When feign is called, the solution of request method ‘post’ not supported appears
  • esp32:A fatal error occurred: Timed out waiting for packet header

5

14 комментариев

  • популярные
  • новые


  • +1

    Вопросы:

    Режим отладки включен? (если включен — выключить)

    Используется ли вариант доставки в точки выдачи заказов, настроенных на маркете? (если да, то стоит включить кеширование — memcached или хотя бы файловое)

    Настроены ли плагины расчета стоимости доставки, использующие внешние сервисы? (часть плагинов «не сознается» что они используют обращения к внешним ресурсам, а это драгоценное время. Такие плагины лучше не использовать. Решение по облегчению ситуации с ними стоит искать совместно с разработчиками плагинов в сторону оптимизаций расчетов и кеширования)

    Маркет лимитирует время на ответ крайне жестко: всего 5.5 секунды



  • +1

    Добрый день!

    Также сталкиваемся с аналогичной проблемой — постоянные ошибки по API http://prntscr.com/czycq3

    Магазин у нас в облаке, поэтому мы особо на скорость повлиять не можем. Плагины используются ваши встроенные — курьерская доставка, например.

    Какие пути решения посоветуете.



    • +1

      Если из плагинов доставки у вас установлены только те, которые не обращаются к внешним сервисам для получения стоимости доставки значит, для решения проблемы вам необходимо обратиться в службу поддержки Webasyst.



    • +1

      Аналогичная проблема. Плагин расчета СДЭК скорее всего из за него. Как решить проблему?



      • +1

        Единственное решение сейчас — не использовать этот плагин (если память не подводит, их сервера не отличаются скоростью ответа на запрос расчета стоимости доставки). Общего решения пока нет (прогнозы по срокам сложно дать), только на уровне отдельных плагинов силами их разработчиков (кеширование/оптимизация).



        • +1

          я не разработчик таких плагинов, но стало даже интересно …

          Тот же СДЭК, например, как кешировать? Мало того, что городов дофига, так он же еще от веса/габаритов, вроде, считает?



          • +1

            Можно попробовать создать ключ для кеширования на основе параметров, от которых зависит стоимость (вес/габариты можно «квантовать», если поддержка сервиса согласится разгласить величину квантования). Это на повторных запросах даст выигрыш по времени. Можно заранее считать «типовые» заказы (ассортимент известен, в заказ попадает, чаще всего, поштучно, можно попробовать «сгенерировать» кеш для плагинов доставки после сохранения настроек кампании хотя бы для домашнего региона).



          • +1

            Владислав, я конечно благодарен вам за ответ Вячеславу, как и сам Вячеслав, но на мой вопрос я ответа не получил.

            Попробую ещё раз — у нас магазин в облаке, тариф Про. Регулярно вылетают ошибки API Маркета, который подключен через Ваш плагин. Также из Ваших плагинов подключен Courier — т.к. конечный пользователь Маркета должен чётко понимать сколько стоит доставка и Маркет штрафует магазин за несоответствие информации на сайте информации в Маркете.

            Таким образом, мы имеем ваше облачное решение + ваши плагины. И регулярные проблемы с API Маркета.

            Подскажите, пожалуйста, каким образом решить данные проблемы? Может быть нужно провести какие-то дополнительные настройки силами ваших специалистов за отдельные деньги? Может быть, проблема решится переходом на более дорогой тариф?

            Хочется понимать, какие ресурсы и средства необходимы, чтобы решить данную проблему.



          • +1

            Теперь периодически возникают ошибки HTTP — https://yadi.sk/i/VnvWFXTsxpLNC

            Хочется всё же услышать позицию разработчиков, т.к. ошибки Маркет показывает постоянно и ежедневно.



            • +1

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

              Про таймаут: из плагинов используется только курьер? включены ли точки самовывоза?



            • +1

              Ну вот :(

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



              • +1

                Владислав, спасибо за ваши ответы.

                про 500 ошибку разобрались — это из-за обновления серверного оборудования.

                С техподдержкой ведём беседу, они заботливо предлагают:

                1. Не пользоваться плагинами, которые автоматически считают стоимость — из них мы используем ваши же «Курьерская доставка» и «Самовывоз». Считаю, что это неправильно по множеству причин и свою позицию описал техподдержке

                2. Попросить Яндекс увеличить timeout для Маркета — осознавая тщетность этой просьбы, я всё же направил в Яндекс письмо и получил единственно логичный ответ: «Указанные таймауты являются глобальными в рамках Маркета и не могут быть изменены в индивидуальном порядке.»

                Вот, кстати, новый список ошибок: https://yadi.sk/i/pa9zZjlcxwvVT



              • +2

                Добрый день.
                Наблюдаем такую же проблему.
                Постоянно вылетает Яндекс.
                Из плагинов доставки установлены СДЭК и Боксберри.

                Сегодня прислали вот такое письмо:

                Мы заметили, что у вас систематически возникают ошибки в обмене данных через API.Чтобы найти проблему, посмотрите лог запросов к вашему серверу.
                Если при повторной проверке мы обнаружим такие же ошибки, нам придётся приостановить работу магазина до тех пор, пока вы не устраните причины их появления.

                Есть какое-нибудь решение?

                I/O error on POST request for "https://SITE.ru/beruru_api/": Read timed out; nested exception is java.net.SocketTimeoutException: Read timed out

                Эта тема в архиве. Добавление комментариев к ней отключено.

                External HTTP access using RestTemplate is implemented in the Spring Boot controller.
                A normal test was executed with JUnit, but RestClientException occurred and the end of the method could not be reached.
                When I try to debug, I get the following error message, but I don’t know how to solve it.
                What should I do about it?

                I/O error on POST request for»External URL» ;: Connection refused: connect

                @ RunWith (SpringRunner.class)
                @SpringBootTest
                public class SampleControllerTest {
                    private MockMvc mockMvc;
                    @InjectMocks
                    private SampleController controller;
                    @Before
                    public void setUp () throws Exception {
                        MockitoAnnotations.initMocks (this);
                        mockMvc = MockMvcBuilders.standaloneSetup (controller) .build ();
                    }
                    @Test
                    public void sample () throws Exception {
                        Map&lt;String, String&gt;map = new LinkedHashMap&lt;String, String&gt;();
                        MockRestServiceServer mockServer = MockRestServiceServer.createServer (new RestTemplate ());
                        mockServer
                        .expect (requestTo ("External URL"))
                        .andExpect (method (HttpMethod.POST))
                        .andRespond (withSuccess (map.toString (), MediaType.APPLICATION_JSON_UTF8));
                        mockMvc.perform (post ("/"))
                        .andExpect (status (). isOk ())
                        .andExpect (view (). name ("index"));
                    }
                }
                @ Controller
                public class SampleController {
                    @RequestMapping (value = "/", method = RequestMethod.POST)
                    public ModelAndView index () {
                        ModelAndView modelAndView = new ModelAndView ();
                        MultiValueMap&lt;String, String&gt;formParams = new LinkedMultiValueMap&lt;&gt;();
                        formParams.add ("data", "data");
                        HttpHeaders httpHeaders = new HttpHeaders ();
                        httpHeaders.add (HttpHeaders.AUTHORIZATION, "Basic XXXXXXXXXX");
                        httpHeaders.add (HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE);
                        RequestEntity&lt;MultiValueMap&lt;String, String&gt;&gt;requestEntity = new RequestEntity&lt;&gt;(formParams, httpHeaders,
                        HttpMethod.POST, URI.create ("External URL"));
                        RestTemplate restTemplate = new RestTemplate ();
                        ResponseEntity&lt;Map&lt;String, String&gt;&gt;responseEntity = null;
                        try {
                            responseEntity = restTemplate.exchange (requestEntity, new ParameterizedTypeReference&lt;Map&lt;String, String&gt;&gt;() {});
                        } catch (RestClientException e) {
                            modelAndView.setViewName ("error");
                            return modelAndView;
                        }
                        modelAndView.setViewName ("index");
                        return modelAndView;
                    }
                }

                Hello,

                In this application I have followed the FFDC Spring Boot example.

                Please find below the environment, Entity, FFDC API Class, and the error stack trace:

                I get the error when I try to call addCustomer method from FFDC Api class only (getCustomer works fine).

                Please let me know if you need any other details.

                ====== Environment ======

                Java 8
                Spring Boot 2.3.3
                Spring web
                Spring Security Oauth2 2.1.0
                httpClient 4.5.9
                
                
                ====== Entity =======
                @AllArgsConstructor
                 @NoArgsConstructor
                 @Data
                 @Builder
                 public class FFDCCustomer {
                     //private String id;
                     private String branch;
                     private String country;
                     private String legalName;
                     private String shortName;
                     private String externalId;
                     private String customerStatus;
                     private boolean specialLoan;
                     private boolean restricted;
                     private boolean majorUnderwriter;
                     private LegalAddress legalAddress;
                 }
                
                
                ====== FFDC API =======
                @Component
                 public class FfdcApi {
                 
                     @Value("${ffdcapi.baseUrl}")
                     private String baseUrl;
                 
                     @Autowired
                     private OAuth2RestTemplate restTemplate;
                 
                     @Autowired
                     private OAuth2ClientContext oAuth2ClientContext;
                
                
                public FFDCCustomer getCustomer(String id) {
                     UriComponents uriBuilder = UriComponentsBuilder
                             .fromUriString(baseUrl + "/corporate/lending/customer/v1/customers/" + id)
                             .build();
                     ResponseEntity<FFDCCustomer> response = restTemplate.exchange(uriBuilder.toUri(), HttpMethod.GET, null, FFDCCustomer.class);
                     return response.getBody();
                 }
                 
                 public FFDCCustomer addCustomer(FFDCCustomer ffdcCustomer) {
                     UriComponents uriBuilder = UriComponentsBuilder
                             .fromUriString(baseUrl + "/corporate/lending/customer/v1/customers")
                             .build();
                     ffdcCustomer.setExternalId("92933");
                     ObjectMapper mapper = new ObjectMapper();
                     ResponseEntity<FFDCCustomer> response = null;
                     try {
                         HttpHeaders headers = new HttpHeaders();
                         headers.setBearerAuth(oAuth2ClientContext.getAccessToken().getValue());
                         headers.setContentType(MediaType.APPLICATION_JSON);
                         headers.setAccept(Arrays.asList(MediaType.ALL));
                         headers.set("Host", baseUrl);
                         String jsonCustomer = mapper.writeValueAsString(ffdcCustomer);
                         HttpEntity<String> requestEntity = new HttpEntity<>(jsonCustomer, headers);
                         response = restTemplate.postForEntity(uriBuilder.toUri(),requestEntity, FFDCCustomer.class);
                     } catch (JsonProcessingException e) {
                         e.printStackTrace();
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 
                     return response == null ? new FFDCCustomer() : ffdcCustomer;
                   }
                }

                getCustomer method works without any problem.

                addCustomer method throws the below error.

                ====== Error stack trace =======

                org.springframework.web.client.ResourceAccessException: I/O error on POST request for «https://api.fusionfabric.cloud/corporate/lending/customer/v1/customers»: Connection reset; nested exception is javax.net.ssl.SSLException: Connection reset

                at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:748)

                at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:714)

                at org.springframework.web.client.RestTemplate.postForEntity(RestTemplate.java:467)

                ..

                ..

                ..

                Caused by: java.net.SocketException: Connection reset

                at java.base/java.net.SocketInputStream.read(SocketInputStream.java:186)

                at java.base/java.net.SocketInputStream.read(SocketInputStream.java:140)

                at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:467)

                at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:461)

                at java.base/sun.security.ssl.SSLSocketInputRecord.bytesInCompletePacket(SSLSocketInputRecord.java:70)

                at java.base/sun.security.ssl.SSLSocketImpl.readApplicationRecord(SSLSocketImpl.java:1145)

                at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:832)

                Thank you in advance for your help.

                Понравилась статья? Поделить с друзьями:
              • Ibm t43 error 2010
              • I o error 1784 delphi
              • Id error check the chip correctly whether contact good pin
              • I o error 145 avest pki
              • Ibm system x3550 m4 board error