虚拟客户端通过库添加时始终为null,如何解决?

问题描述

我最近与feign合作开发了一个项目,该项目决定将其打包并将其作为库发布,因此使用起来会更容易。一切正常,但是在我调用伪客户端时,它只是返回一个NPE。

我想知道我是否缺少配置,还是因为它是一个库?或它如何包含在项目中?

基本上,我在图书馆有这样的东西:

在LibraryConfiguration.java

//some more beans
@Bean
public ClientService clientService(){
    return new ClientService();
}

我在ClientService有

 @Autowired
  private MyClient myClient;

  ClientService(){
   myClient.myResource();
  }

在MyClient上:

@FeignClient(name = "auth",url = "${my-url}",configuration = MyClient.Configuration.class)
public interface MyClient {


  @RequestMapping(method = RequestMethod.POST,value = "/my-resource",consumes = "application/x-www-form-urlencoded")
  String getResource(Map<String,?> formParams);

  class Configuration {

    @Bean
    Encoder feignFormEncoder(ObjectFactory<HttpMessageConverters> converters) {
      return new SpringFormEncoder(new SpringEncoder(converters));
    }
  }
}

所以它们都包装好了。

在我的应用中,我有:

@SpringBootApplication
@Import(LibraryConfiguration.class)
@EnableFeignClients()
@Configuration
@ImportAutoConfiguration(FeignAutoConfiguration.class)
public class MyApiApplication {
....
}

我这样添加了库(我正在使用gradle)

compile 'com.my-library:version'

有什么可能丢失的想法吗?

谢谢。

解决方法

确保伪装客户端的程序包级别低于Main类(MyApiApplication)的程序包级别。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...