Spring WebClient获取请求返回“连接被拒绝:localhost /”

时间:2019-12-26 11:33:28

标签: java spring-boot spring-webflux

当我尝试通过WebClient发送GET请求时,我已响应并出现错误io.netty.channel.AbstractChannel $ AnnotatedConnectException:连接被拒绝:localhost /

* WebClient初始化*

//hostname = "localhost/127.0.0.1:8081"
//contextPath = "user-service"

    @Bean
    public WebClient userWebclient(@Value("${service.user.hostname}") final String hostname,
                                  @Value("${service.user.contextPath}") final String contextPath) {
        return WebClient
                .builder()
                .baseUrl(hostname + contextPath)
                .build();
    }

*控制器*

    private final WebClient userWebclient;

    @GetMapping(value = "/user/{id}", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
    public Mono<String> getUserById(@NotNull @PathVariable String userId) {
        userWebclient.

        return userWebclient.get()
               .uri("/UserMock/user/" + userId)
               .header("Accept", "application/json")
               .header("Authorization", "Bearer =........")
               .exchange()
               .flatMap(response -> response.bodyToMono(String.class));
    }

错误消息

io.netty.channel.AbstractChannel$AnnotatedConnectException: Connection refused: localhost/127.0.0.1:8081
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
    at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:327)
    at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:340)
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:665)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612)
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529)
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491)
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
    at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.ConnectException: Connection refused
    ... 10 common frames omitted

2 个答案:

答案 0 :(得分:1)

在主机中使用

hostname = "localhost:8081" 

OR

hostname = "127.0.0.1:8081"

代替

hostname = "localhost/127.0.0.1:8081"

答案 1 :(得分:1)

检查您的地址是否正确,此错误可能是因为您的端口号不正确,例如8081,但应为8080