无法在Springboot HttpExchange中创建接口实例

问题描述 投票:0回答:1

我尝试使用 HttpExchange 从不同的微服务访问端点,一旦我从客户端接口创建实例,它总是返回空值

我的 RegisterServiceClient 界面如下所示

@HttpExchange   // Declarative client
public interface RegisterServiceClient {

//    @PostExchange("/ecommerce/loginwithusername")
//    public int ValidateUserWithUsername(@RequestBody String username, String password) throws UnsupportedEncodingException;

    @PostExchange("/ecommerce/loginwithemail")
    public int ValidateUserWithEmail(@RequestBody LoginUser loginUser) throws UnsupportedEncodingException ;


    }

我的配置是这样的



    @Configuration
    public class WebClientConfig {

        @Autowired
        private LoadBalancedExchangeFilterFunction filterFunction;


        @Bean
        public WebClient registerWebClient() {
            return WebClient.builder()
                    .baseUrl("http://register-service")
                    .filter(filterFunction)
                    .build();
        }

        @Bean
        public RegisterServiceClient registerClient() {
            HttpServiceProxyFactory httpServiceProxyFactory
                    = HttpServiceProxyFactory
                    .builder(WebClientAdapter.forClient(registerWebClient()))
                    .build();
            return httpServiceProxyFactory.createClient(RegisterServiceClient.class);
        }
    }
@Autowired
private RegisterServiceClient registerServiceClient ;

registerServiceClient 总是有 null 值,为什么?

java spring-boot interface microservices webclient
1个回答
0
投票

我目前有类似的问题,只是我收到此错误: “无法自动装配。未找到“LoadBalancedExchangeFilterFunction”类型的 bean。”

这是我的 WebClientConfig

@配置 公共类 WebClientConfig {

@Autowired
private LoadBalancedExchangeFilterFunction filterFunction;//filter is well error is


@Bean
public WebClient employeeWebClient(){
    return WebClient.builder()
            .baseUrl("http://employee-service")
            .filter(filterFunction)
            .build();

}

@Bean
public EmployeeClient employeeClient(){
    HttpServiceProxyFactory httpServiceProxyFactory
            =HttpServiceProxyFactory
            .builder(WebClientAdapter.forClient(employeeWebClient()))
            .build();

    return httpServiceProxyFactory.createClient(EmployeeClient.class);

}

}

© www.soinside.com 2019 - 2024. All rights reserved.