Junit错误-软件导致连接中止:recv failed;嵌套异常是 java.net.SocketException:软件导致连接中止:接收失败

问题描述

此测试方法单独运行成功,但在将整个测试包作为 junit 测试运行时,此特定测试失败。

      @Test
      public void testUpdateCommentForLineItemStatusCode200() {
        insertDataforRequisition();
        insertDataforItems();
        requestHeaders.set("Prefer","return=representation");
        wiremockRule.stubFor(patch(urlEqualTo(LINEITEM_URL + "Requisitions(ReqId=" + reqID1 + ")/LineItems(LineItemId="
            + lineItem1 + ")/Comments(CommentId=" + commentId1 + ")"))
                .willReturn(aResponse().withStatus(200)
                    .withBody(readResponseFromFile("UpdateCommentForLineItemResponse.json",MOCKDATA_PATH))));
        wiremockRule.stubFor(get(urlEqualTo(
            LINEITEM_URL + "Requisitions(ReqId=" + reqID1 + ")/LineItems(LineItemId=" + lineItem1 + ")/Comments"))
                .willReturn(aResponse().withStatus(200)
                    .withBody(readResponseFromFile("GetCommentsForLineItemResponse.json",MOCKDATA_PATH))));
        httpentity<?> httpentity =
            new httpentity<>(readResponseFromFile("UpdateCommentForLineItemRequest.json",MOCKDATA_PATH),requestHeaders);
        ResponseEntity<Map> updateCommentResponse = testRestTemplate
            .exchange(getURLWithPort(REQUISITION_SERVICE_PATH + "Requisitions(ReqId=" + reqID1 + ")/LineItems(LineItemId="
                + lineItem1 + ")/Comments(CommentId=" + commentId1 + ")"),HttpMethod.PATCH,httpentity,Map.class);
        assertEquals(200,updateCommentResponse.getStatusCodeValue());
        assertEquals("Hello,good morning",updateCommentResponse.getBody().get("CommentString"));
        assertEquals(lineItem1,updateCommentResponse.getBody().get("ParentId"));
      }

失败提示以下错误

Caused by: org.springframework.web.client.ResourceAccessException: I/O error on PATCH request for "http://localhost:8080/requisition-lineitem-service-srv/odata/v4/RequisitionLineItemService/Requisitions(ReqId=123e4567-e89b-12d3-a456-426614174000)/LineItems(LineItemId=223e4567-e89b-12d3-a456-426614174000)/Comments(CommentId=5d2193c5-f53d-45af-a6b1-940058f30e4b)": Software caused connection abort: recv Failed; nested exception is java.net.socketException: Software caused connection abort: recv Failed
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:748) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:583) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
at com.sap.requisitioning.services.impl.LineItemDelegationImpl.updateLineItemComment(LineItemDelegationImpl.java:457) ~[classes/:?]
at com.sap.requisitioning.handlers.DelegationHandler.updateCommentForLineItem(DelegationHandler.java:1223) ~[classes/:?]
at com.sap.cds.services.impl.handlerregistry.HandlerRegistryTools$DescribedHandler.process(HandlerRegistryTools.java:160) ~[cds-services-impl-1.9.0.jar:?]
at com.sap.cds.services.impl.ServiceImpl.dispatch(ServiceImpl.java:182) ~[cds-services-impl-1.9.0.jar:?]
... 85 more
Caused by: java.net.socketException: Software caused connection abort: recv Failed
    at java.net.socketInputStream.socketRead0(Native Method) ~[?:?]
    at java.net.socketInputStream.socketRead(SocketInputStream.java:115) ~[?:?]
    at java.net.socketInputStream.read(SocketInputStream.java:168) ~[?:?]
    at java.net.socketInputStream.read(SocketInputStream.java:140) ~[?:?]
    at org.apache.http.impl.io.SessionInputBufferImpl.streamRead(SessionInputBufferImpl.java:137) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.io.SessionInputBufferImpl.fillBuffer(SessionInputBufferImpl.java:153) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.io.SessionInputBufferImpl.readLine(SessionInputBufferImpl.java:280) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:138) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.conn.DefaultHttpResponseParser.parseHead(DefaultHttpResponseParser.java:56) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.io.AbstractMessageParser.parse(AbstractMessageParser.java:259) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.DefaultBHttpClientConnection.receiveResponseHeader(DefaultBHttpClientConnection.java:163) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.conn.CPoolProxy.receiveResponseHeader(CPoolProxy.java:157) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.protocol.HttpRequestExecutor.doReceiveResponse(HttpRequestExecutor.java:273) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.protocol.HttpRequestExecutor.execute(HttpRequestExecutor.java:125) ~[httpcore-4.4.13.jar:4.4.13]
    at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:272) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:186) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.12.jar:4.5.12]
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.12.jar:4.5.12]
    at org.springframework.http.client.HttpComponentsClientHttpRequest.executeInternal(HttpComponentsClientHttpRequest.java:87) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:48) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:53) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:739) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:583) ~[spring-web-5.2.7.RELEASE.jar:5.2.7.RELEASE]
    at com.sap.requisitioning.services.impl.LineItemDelegationImpl.updateLineItemComment(LineItemDelegationImpl.java:457) ~[classes/:?]
    at com.sap.requisitioning.handlers.DelegationHandler.updateCommentForLineItem(DelegationHandler.java:1223) ~[classes/:?]
    at com.sap.cds.services.impl.handlerregistry.HandlerRegistryTools$DescribedHandler.process(HandlerRegistryTools.java:160) ~[cds-services-impl-1.9.0.jar:?]
    at com.sap.cds.services.impl.ServiceImpl.dispatch(ServiceImpl.java:182) ~[cds-services-impl-1.9.0.jar:?]
    ... 85 more

在这里给我建议。我们已经通过以下方式定义了我们的wiremock规则:

 @ClassRule
  public static wiremockRule wiremockRule = new wiremockRule(wiremockConfig().notifier(new ConsoleNotifier(true)));

这个wiremock规则可能是问题吗?之所以问这个是因为有时不同的测试会因为相同的原因而失败,即 I/O 错误和软件导致连接中止:recv 失败

提前致谢:)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...