Не удается заставить работать Feign Client. Сначала попробовал с помощью POST. Продолжал работать с ошибками, связанными с кодировщиком / декодером, говоря, что тип неправильный. Затем нашел на github пример, чтобы наконец вызвать простой GET API, и решил попробовать. Все еще не удается
На Github и в Интернете я вижу несколько версий Feign Client Spring-Cloud, OpenFeign, Netflix.feign, имеющих разные версии. Может ли кто-нибудь описать, какой самый лучший и стабильный клиент Feign следует использовать для продакшена?
package com.paa.controllers;
import org.springframework.cloud.netflix.feign.FeignClient;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@FeignClient (name="test-service",url="https://www.reddit.com/r")
public interface GetFeignClient {
@RequestMapping(method = RequestMethod.GET, value = "/java.json")
public String posts();
}
Controller:
@RestController
@RequestMapping("/some/api")
public class TestWLCController {
@Autowired
private GetFeignClient getFeignClient;
.. some stuff
@RequestMapping(value="/postSomething",method = RequestMethod.POST)
@ApiOperation(value = "Configures something",
notes = "basic rest controller for testing feign")
public ResponseEntity<SomeResponse> feignPost(
UriComponentsBuilder builder,
@ApiParam(name = "myRequest",
value = "request for configuring something",
required = true)
@Valid @RequestBody SomeRequest someRequest) {
String resp = null;
try {
resp = getFeignClient.posts();
} catch (Exception er) {
er.printStackTrace();
}
}
}
Заявка:
Пробовал все возможные перестановки аннотаций, думая, что это разрешит проблемы с AutoWire, но все равно терпит неудачу.
@Configuration
@ComponentScan
@EnableAutoConfiguration
//@EnableEurekaClient
@EnableFeignClients
//@SpringBootApplication
//@EnableFeignClients
//@EnableFeignClients(basePackages = {"com.paa.xenia.controllers", "com.paa.xenia.services"})
public class ServiceApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(XeniaServiceApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(ServiceApplication.class, args);
}
}
2016-07-20 18: 15: 42.406 [0; 39m [31mERROR [0; 39m [35m32749 [0; 39m [2m --- [0; 39m] [2m [main] [0; 39m [36mo.s.boot] .SpringApplication [0; 39 мин. [2 мин.: [0; 39 мин. Ошибка при запуске приложения
Я не уверен, что вы в конце концов поняли это сами, но для тех, кто может наткнуться на эту ветку, ниже приведен рабочий пример того, что вы пытались сделать. Сначала я укажу на несколько вещей, которые неверны или, по крайней мере, нежелательны в вашем коде, а затем покажу свой работающий код.