Невозможно заставить Файон Клиента работать. Сначала попытался с POST. Неисправность запущена в ошибки, связанные с типом кодирования/декодера. Затем нашел пример на github, чтобы в конце концов называть простой GET API и решил сделать снимок. По-прежнему не удаетсяНевозможно заставить Файон Клиента работать на базовый пример
В Github и в Интернете я вижу несколько версий Feign Client Spring-Cloud, OpenFeign, Netflix.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; 39m [2m: [0 ; 39m Ошибка при запуске приложения
org.springframework.beans.factory.BeanCreationException: Ошибка создании компонента с именем 'testWLCController': Инъекции autowired зависимостей не удалось; вложенное исключение: org.springframework.beans.factory.BeanCreationException: не удалось поле autowire: private com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'com.aa..controllers.GetFeignClient': FactoryBean исключил создание объекта; вложенное исключение составляет java.lang.NullPointerException на org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues (AutowiredAnnotationBeanPostProcessor.java:334) ~ [пружинных-бобов-4.2.6.RELEASE.jar: 4.2.6. RELEASE] на org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean (AbstractAutowireCapableBeanFactory.java:1214) ~ [весна-бобы-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework .beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:543) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory.createBean (AbstractAutowireCapable BeanFactory.java:482) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory $ 1.getObject (AbstractBeanFactory.java:306) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:230) ~ [spring-beans- 4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:302) ~ [spring-beans-4.2.6.RELEASE.jar : 4.2.6.RELEASE] в org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:197) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons (DefaultListableBeanFactory.java:772) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.РЕЛИЗ] на org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization (AbstractApplicationContext.java:839) ~ [весенне-контекстно-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org.springframework.context .support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:538) ~ [spring-context-4.2.6.RELEASE.jar: 4.2.6.RELEASE] в org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:118) ~ [spring-boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] в org.springframework.boot.SpringApplication.refresh (SpringApplication.java:766) [spring-boot -1.3.5.RELEASE.jar: 1.3.5.RELEASE] на org.springframework.boot.SpringApplication.createAndR efreshContext (SpringApplication.java:361) [spring-boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:307) [spring- boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication.java:1191) [spring-boot-1.3.5.RELEASE.jar: 1.3. 5.RELEASE] на org.springframework.boot.SpringApplication.run (SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar: 1.3.5.RELEASE] на com.paa.ServiceApplication. main (ServiceApplication.java:44) [bin /: na] Вызвано: org.springframework.beans.factory.BeanCreationException: Не удалось создать поле autowire: private com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient; вложенное исключение: org.springframework.beans.factory.BeanCreationException: Ошибка создание bean-компонента с именем 'com.paa.controllers.GetFeignClient': FactoryBean исключил создание объекта; вложенное исключение java.lang.NullPointerException в org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject (AutowiredAnnotationBeanPostProcessor.java:573) ~ [Весна-Beans-4.2.6.RELEASE.jar: 4.2. 6.RELEASE] на org.springframework.beans.factory.nnation.InjectionMetadata.inject (InjectionMetadata.java:88) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] на org .springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues (AutowiredAnnotationBeanPostProcessor.java:331) ~ [spring-beans-4.2.6.RELEASE.jar: 4.2.6.RELEASE] ... 17 com.n кадров опущено
Я был в состоянии успешно использовать симулировать хотя мы действительно не использовать 'ленточку'. Мы использовали в качестве клиента для отдыха, так как он намного чище. Другой урок, который мы узнали, заключался в том, что для Feign для обработки заголовков и перехватов ответов необходимо реализовать Decoders for Feign, а также настроить Feign Config. Я отправлю код, как только получаю некоторое время. – Rockoder
@Rockoder Нет необходимости отправлять код, что вы сказали, является частью документации, ничего необычного. –
Точка, которую я попытался уточнить, мы использовали Фейнг без ленты.Поэтому лента не обязательно использовать Feign ==== симулировать: Hystrix: включено: ложные DataSource: аудит: MongoDB: хозяин: локальный порт: 27019 база данных: аудит === – Rockoder