2015-06-09 18 views
9

Włączyłem mój wiosna chmurę dla feignClients jak ten:Korzystanie sprężyny cloud udawać powoduje java.lang.NoClassDefFoundError: udawać/Logger

@Configuration 
@EnableAutoConfiguration 
@RestController 
@EnableEurekaClient 
@EnableCircuitBreaker 
@EnableFeignClients 

public class SpringCloudConfigClientApplication { 
} 

Ale jak oon jak dodam enableFeignClients, mam ten błąd podczas kompilacji,

java.lang.NoClassDefFoundError: feign/Logger 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2688) 
    at java.lang.Class.getDeclaredMethods(Class.java:1962) 

Moja POM jest

<parent> 
     <groupId>org.springframework.cloud</groupId> 
     <artifactId>spring-cloud-starter-parent</artifactId> 
     <version>1.0.0.RELEASE</version> 
    </parent> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
     <start-class>demo.SpringCloudConfigClientApplication</start-class> 
     <java.version>1.7</java.version> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-eureka</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-config-server</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 

     <dependency> 
      <groupId>org.springframework.cloud</groupId> 
      <artifactId>spring-cloud-starter-hystrix</artifactId> 
     </dependency> 

    </dependencies> 

W celu rozwiązania problemu udawaj rejestratora, jakie inne depende ncy muszę dodać do POM?

Dzięki

Dziękuję @spencergibb, w oparciu o sugestię, że pracował po mogę zmienić pom. Teraz mam inny problem z korzystaniem z FeignClient. Proszę zobaczyć poniżej:

@Autowired 
    StoreClient storeClient; 
    @RequestMapping("/stores") 
    public List<Store> stores() { 
     return storeClient.getStores(); 
    } 

i interfejs jest:

@FeignClient("store") 
public interface StoreClient { 
    @RequestMapping(method = RequestMethod.GET, value = "/stores") 
    List<Store> getStores(); 
} 

Podmiot sklepu jest:

public class Store { 

    private long id; 
    private String name; 
    private String zip; 

    public Store(long id, String name, String zip) { 
     this.id = id; 
     this.name = name; 
     this.zip = zip; 
    } 
} 

Teraz, kiedy odzyskać w adresie URL, mam ten błąd,

ue Jun 09 15:30:10 PDT 2015 
There was an unexpected error (type=Internal Server Error, status=500). 
Could not read JSON: No suitable constructor found for type [simple type, class demo.entity.Store]: can not instantiate from JSON object (need to add/enable type information?) at [Source: [email protected]; line: 1, column: 3] (through reference chain: java.util.ArrayList[0]); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No suitable constructor found for type [simple type, class demo.entity.Store]: can not instantiate from JSON object (need to add/enable type information?) at [Source: [email protected]; line: 1, column: 3] (through reference chain: java.util.ArrayList[0]) 

Wydaje się, że błąd tutaj jest przywrócona lista nie można przekonwertować do klasy sklepu. Żeby użyć FeignClient, jakiegokolwiek innego narzędzia mapującego, które musimy uwzględnić, aby przekonwertować JSON na obiekty?

Dzięki

+0

Odpowiedź siebie, konieczności wprowadzenia domyślnego pustego konstruktora w classs podmiotu aby dokonać mapowania roboczą. Dzięki – user3006967

Odpowiedz

21

Brakuje spring-cloud-starter-feign

+0

Dziękuję, @spencergibb, masz rację. Czy możesz pomóc w określeniu, w jaki sposób mapować z JSON-a na obiekty? Wyglądało na to, że FeignClient tego nie robi. – user3006967

+0

Czy Twój obiekt ma publiczny konstruktor no-arg? – spencergibb