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

如何解决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.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?