web-dev-qa-db-ja.com

Spring Cloud Feignを使用すると、Java.lang.NoClassDefFoundErrorが発生します:feign / Logger

次のように、feignClientsに対して春のクラウドを有効にしました。

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

public class SpringCloudConfigClientApplication {
}

しかし、enableFeignClientsを追加するとすぐに、コンパイル中にこのエラーが発生しました。

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)

私のPOMは

<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>

偽のロガーの問題を解決するには、他にどのような依存関係をPOMに追加する必要がありますか?

ありがとう

@spencergibbに感謝します、あなたの提案に基づいて、私が私のpomを変えた後にそれは働きました。今、私はFeignClientを使用するための別の問題があります。下記を参照してください:

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

インターフェースは次のとおりです。

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

ストアエンティティは次のとおりです。

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;
    }
}

URLで取得すると、このエラーが発生しました。

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: Java.io.PushbackInputStream@7db6c3dc; 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: Java.io.PushbackInputStream@7db6c3dc; line: 1, column: 3] (through reference chain: Java.util.ArrayList[0])

ここでのエラーは取得されたリストはストアクラスに変換できないようです。では、FeignClientを使用するには、JSONをオブジェクトに変換するために含める必要のある他のマッパーはありますか?

ありがとう

11
user3006967

あなたは行方不明ですspring-cloud-starter-feign

26
spencergibb