首页 > 技术文章 > not annotated with HTTP method type (ex. GET, POST) 问题解决

myibm 2017-12-13 14:28 原文

大多数情况是真的而没有写method = RequestMethod.GET、POST等注解, 有时这么写了也报类似异常,如下

@FeignClient("microservice-provider-user")
public interface MyFeignClient {

@RequestMapping(value = "a",method = RequestMethod.GET)
public User findByIdE(@RequestParam("id") Long id);

@RequestMapping(method = RequestMethod.POST,value = "/getUserByPost")
User findBy(@RequestBody User user);
}

java.lang.IllegalStateException: Method findByIdE not annotated with HTTP method type (ex. GET, POST)

问题原因,是因为这个类的存在,在其中 new feign.Contract.Default();使用了默认的Contract导致。

package com.itmuch.cloud.study.user.feign;

import feign.Contract;
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MyFeignConfiguration {

@Bean
public Contract feignContract(){
return new feign.Contract.Default();
}

@Bean
public Logger.Level logLevel(){
return Logger.Level.FULL;
}

}

解决方法:换其他Contract.

 

推荐阅读