我尝试使用 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 值,为什么?
我目前有类似的问题,只是我收到此错误: “无法自动装配。未找到“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);
}
}