not annotated with HTTP method type (ex. GET, POST) 问题解决

时间:2023-03-09 18:01:04
not annotated with HTTP method type (ex. GET, POST) 问题解决
大多数情况是真的而没有写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.