【问题标题】:TestRestTemplate HttpHostConnectException: Connect to localhost:8082 [localhost/127.0.0.1] failed: Connection refusedTestRestTemplate HttpHostConnectException:连接到 localhost:8082 [localhost/127.0.0.1] 失败:连接被拒绝
【发布时间】:2020-08-18 10:12:59
【问题描述】:

我只是从https://github.com/eugenp/tutorials/tree/master/spring-resttemplate 克隆源代码和 无法在本地执行测试givenFooService_whenCallHeadForHeaders_thenReceiveAllHeaders()

我收到了下一个异常

org.springframework.web.client.ResourceAccessException: I/O error on HEAD request for "http://localhost:8082/spring-rest/foos": Connect to localhost:8082 [localhost/127.0.0.1] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to localhost:8082 [localhost/127.0.0.1] failed: Connection refused (Connection refused)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:748)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:674)
    at org.springframework.web.client.RestTemplate.headForHeaders(RestTemplate.java:366)
    at org.springframework.boot.test.web.client.TestRestTemplate.headForHeaders(TestRestTemplate.java:279)
    at com.baeldung.web.test.TestRestTemplateBasicLiveTest.givenFooService_whenCallHeadForHeaders_thenReceiveAllHeaders(TestRestTemplateBasicLiveTest.java:98)
    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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
    at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
    at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
    at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
    at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
    at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33)
    at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:220)
    at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:53)
Caused by: org.apache.http.conn.HttpHostConnectException: Connect to localhost:8082 [localhost/127.0.0.1] failed: Connection refused (Connection refused)

关于存储库https://www.baeldung.com/spring-boot-testresttemplate的其他信息

教程示例无法正常运行,这很奇怪。

【问题讨论】:

    标签: java spring spring-boot resttemplate spring-resttemplate


    【解决方案1】:

    这些是集成测试。您需要在执行测试之前启动 spring boot 应用程序。主类-RestTemplateConfigurationApplication

    【讨论】:

    • 谢谢。 CI/CD 是否应该在此测试之前启动应用程序?
    • 这只是一个演示。在实际应用程序的 CI/CD 中,您的测试将启动一个测试服务器,例如使用 @SpringbootTest
    猜你喜欢
    • 2020-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 2016-08-13
    • 2018-07-03
    • 2017-05-23
    相关资源
    最近更新 更多