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
Odpowiedź siebie, konieczności wprowadzenia domyślnego pustego konstruktora w classs podmiotu aby dokonać mapowania roboczą. Dzięki – user3006967