title: Can't get Feign Client to work for a basic example
body: <p>Can't get Feign Client to work. First tried with POST. Kept running into errors related to Encoder/Decoder saying type is not right.
  Then found an example on github to call simple GET API finally and decided to give it a shot.
  Still fails</p>
  
  <p>On Github and online, I am seeing multiple versions of Feign Client
  Spring-Cloud, OpenFeign, Netflix.feign having different versions.
  Could anyone describe what's the best and stable Feign client one should use for production?</p>
  
  <pre><code>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&lt;SomeResponse&gt; 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();
          }
  
      }
  }
  </code></pre>
  
  <p>Application:</p>
  
  <p>Tried all possible permutations of annotations thinking it would resolve AutoWire stuff but still fails</p>
  
  <pre><code>@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);
      }
  }
  </code></pre>
  
  <blockquote>
    <p>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
    Application startup failed</p>
    
    <p>org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'testWLCController': Injection of autowired
    dependencies failed; nested exception is
    org.springframework.beans.factory.BeanCreationException: Could not
    autowire field: private com.paa.controllers.GetFeignClient
    com.paa.controllers.TestWLCController.gfClient; nested exception is
    org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'com.aa..controllers.GetFeignClient':
    FactoryBean threw exception on object creation; nested exception is
    java.lang.NullPointerException    at
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1214)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:772)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:839)
    ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]     at
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:538)
    ~[spring-context-4.2.6.RELEASE.jar:4.2.6.RELEASE]     at
    org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
    ~[spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]    at
    org.springframework.boot.SpringApplication.refresh(SpringApplication.java:766)
    [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]     at
    org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:361)
    [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
    [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:1191)
    [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]     at
    org.springframework.boot.SpringApplication.run(SpringApplication.java:1180)
    [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE]     at
    com.paa.ServiceApplication.main(ServiceApplication.java:44) [bin/:na]
    Caused by: org.springframework.beans.factory.BeanCreationException:
    Could not autowire field: private com.paa.controllers.GetFeignClient
    com.paa.controllers.TestWLCController.gfClient; nested exception is
    org.springframework.beans.factory.BeanCreationException: Error
    creating bean with name 'com.paa.controllers.GetFeignClient':
    FactoryBean threw exception on object creation; nested exception is
    java.lang.NullPointerException    at
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   at
    org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:331)
    ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE]   ... 17 com.n frames
    omitted</p>
  </blockquote>