À l'aide de @RequestLine avec Feindre
J'ai un travail à Feindre de l'interface définie comme:
@FeignClient("content-link-service")
public interface ContentLinkServiceClient {
@RequestMapping(method = RequestMethod.GET, value = "/{trackid}/links")
List<Link> getLinksForTrack(@PathVariable("trackid") Long trackId);
}
Si je change cette utilisation de @RequestLine
@FeignClient("content-link-service")
public interface ContentLinkServiceClient {
@RequestLine("GET /{trackid}/links")
List<Link> getLinksForTrack(@Param("trackid") Long trackId);
}
- Je obtenir de l'exception
Causés par: java.lang.IllegalStateException: Méthode getLinksForTrack pas annotées à l'aide de la méthode HTTP de type (ex. GET, POST)
Des idées pourquoi?
OriginalL'auteur nickcodefresh | 2015-05-01
Vous devez vous connecter pour publier un commentaire.
Je ne m'attends pas à ce travail.
@RequestLine
est l'un des principaux Feindre d'annotation, mais vous utilisez le Printemps Cloud@FeignClient
qui utilise les annotations de Spring MVC.OriginalL'auteur Alex Wittig
Printemps a créé leur propre Feindre
Contract
pour vous permettre d'utiliser le Printemps@RequestMapping
annotations au lieu de Feint. Vous pouvez désactiver ce comportement en y compris un bean de typefeindre.Contrat.Default
dans votre contexte de l'application.Si vous utilisez
spring-boot
(ou quoi que ce soit à l'aide de Java config), y compris dans un@Configuration
classe, devrait permettre à Feindre de les annotations:OriginalL'auteur Michael K