SpringCloud——Feign 服务调用报错

本贴最后更新于 866 天前,其中的信息可能已经时异事殊

写了一个 Eureka 注册调用的 demo,代码大致如下:

Feign

@FeignClient(name = "spring-cloud-provider")
public interface HelloRemote {

    @RequestMapping("/hello")
    public String hello(@RequestParam("name")String name);

}

controller

@RestController
public class HelloController {

    @Autowired
    HelloRemote helloRemote;

    @RequestMapping("/hello/{name}")
    public String index(@PathVariable("name") String name){
        return helloRemote.hello(name);
    }


}

程序启动时遇到:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field helloRemote in com.freemud.controller.HelloController required a bean of type 'com.freemud.controller.HelloRemote' that could not be found.

The injection point has the following annotations:
	- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type 'com.freemud.controller.HelloRemote' in your configuration.

报错大致的意思就是 HelloController 中@Autowired 自动注入的属性 HelloRemote 无法被找到

解决:
问题应当出在 Feign 上,在写@EnableFeignClients 注解的时候应当加上包名,否则就会出现读取不到的情况。

  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    858 引用 • 1420 回帖 • 618 关注
  • Feign
    8 引用

广告 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...