当前位置: 首页 > >

SpringCloud集成Feign报错:feign.FeignException$NotFound: status 404 reading UserFeign#userList()

发布时间:

基本知识是springcloud? 我现在使用的 是jeecgcloud 开源框架??


?


解决方式 第一百度看看是不是你得路径写错了


第二? 客户端 中@FeignClient(contextId?=?"fServiceClient",value?=?ServiceNameConstants.DEMO_SERVICE) 注解value得值必须是你要访问得 那个服务


?


?


标题是借别人得? ?内容是自己遇到得? 网上一搜索全是请求路径不对? 反复验证了路径 全对就是请求不到,因为自己没有springcloud 知识? (每日一问啥时候学)所以正常知道springcloud 知识得人不会遇到这个问题感觉


举例子:一下都是给自己看的

?


项目结构? 每个模块 差不多相当于一个 服务? 每个服务下面都有个bootstrap.yml文件? ?文件里面spring:? application:name: jeecg-system


name后面就是服务名 一般情况下会写和自己模块名字一样的把?



启动nacos? 看到服务名字应该与配置文件是一样得 如果不翻配置文件就看nacos 中的服务名称


举个例子 gateway 现在是网关我就开了这个网关



?A模块服务??bootstrap.yml文件? 中 spring:? application:name: A


AController??


package org.jeecg.modules.test.controller;

import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresRoles;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.modules.api.SysBaseRemoteApi;
import org.jeecg.modules.test.client.UserServiceClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

/**
* @Description: TODO
* @author: scott
* @date: 2020年05月18日 16:37
*/
@Slf4j
@RestController
@RequestMapping("/a")
public class AController {
@Autowired
AClient aClient;

@GetMapping("/helloa")
public String hello1(){
System.out.println("222");
return "hello world , my name is A";
}

AClient


package org.jeecg.modules.test.client;

import com.alibaba.fastjson.JSONObject;
import org.jeecg.common.api.vo.Result;
import org.jeecg.common.constant.ServiceNameConstants;
import org.jeecg.common.system.vo.LoginUser;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;

import javax.servlet.http.HttpServletRequest;

@Component
@FeignClient(contextId = "aClient", value ="B")//A服务下面有个客户端想要请求B服务 没想好请求啥就空如果下面又两个client 需要加上name属性区分
public interface AClient {





?B模块服务??bootstrap.yml文件? 中 spring:? application:name: B


BController



/**
* @Description: TODO
* @author: scott
* @date: 2020年05月18日 16:37
*/
@Slf4j
@RestController
@RequestMapping("/b")
public class BController {
@Autowired
BClient BClient;

@GetMapping("/hellob")
public String hello1(){

return b.getString();
}

BClient




@Component
@FeignClient(contextId = "bClient", value ="A")//请求A服务
public interface BClient {



@GetMapping(value = "/a/helloa")
public String fuassdw();

?



友情链接: