nic*_*esh 12 java netflix-feign
我有一个工作的Feign接口定义为:
@FeignClient("content-link-service")
public interface ContentLinkServiceClient {
@RequestMapping(method = RequestMethod.GET, value = "/{trackid}/links")
List<Link> getLinksForTrack(@PathVariable("trackid") Long trackId);
}
Run Code Online (Sandbox Code Playgroud)
如果我将其更改为使用@RequestLine
@FeignClient("content-link-service")
public interface ContentLinkServiceClient {
@RequestLine("GET /{trackid}/links")
List<Link> getLinksForTrack(@Param("trackid") Long trackId);
}
Run Code Online (Sandbox Code Playgroud)
我得到了例外
引起:java.lang.IllegalStateException:方法getLinksForTrack没有使用HTTP方法类型注释(例如GET,POST)
有什么想法吗?
Mic*_*l K 10
Spring创建了自己的Feign Contract,允许你使用Spring的@RequestMapping注释而不是Feigns.您可以通过在应用程序上下文中包含类型的beanfeign.Contract.Default来禁用此行为.
如果你正在使用spring-boot(或使用Java配置的任何东西),在@Configuration类中包括这个应该重新启用Feign的注释:
@Bean
public Contract useFeignAnnotations() {
return new Contract.Default();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13740 次 |
| 最近记录: |