当前位置: 首页 > 知识库问答 >
问题:

Spring cloud openfeign状态404

劳烨
2023-03-14

我正在处理一个miscroservices示例,我有4个微服务:-尤里卡-服务器(发现)-网关-服务(zuul代理)-资源-服务(假装客户端)-用户-服务(用户crud示例)

一切正常;即使当我通过代理调用用户服务API时,它也能很好地工作;但我的目标是使用假客户端调用用户服务API,此时我得到了错误

Feign.FeignException$NotFound:状态404正在读取UserDetailsServiceFeign#GetUserByID(长)

堆栈跟踪:

这是我的主要课程:

@EnableFeignClients
@EnableEurekaClient
@SpringBootApplication
public class ResourceServiceApplication {
public static void main(String[] args) {
    SpringApplication.run(ResourceServiceApplication.class, args);
  }
}
@FeignClient(name = "user-service")
public interface UserDetailsServiceFeign {

@PostMapping(value = "/saveUpdate")
UserDetailsDTO saveUpdate(@RequestBody UserDetailsDTO inputUser);

@GetMapping(value = "/getById/{id}")
UserDetailsDTO getUserById(@PathVariable(name = "id") Long id);

@GetMapping(value = "/getByName/{name}")
List<UserDetailsDTO> getUserByName(@PathVariable(name = "name") String name);

}

这是我的控制器api类

@RestController
@RequestMapping("/api")
public class UserDetailsResourceController {

@Autowired
private UserDetailsServiceFeign userDetailsServiceFeign;

@PostMapping(value = "/saveUpdate")
public UserDetailsDTO saveUpdate(@RequestBody UserDetailsDTO inputUser) {
    return userDetailsServiceFeign.saveUpdate(inputUser);
}

@GetMapping(value = "/getById/{id}")
public UserDetailsDTO getUserById(@PathVariable(name = "id") Long id) {
    return userDetailsServiceFeign.getUserById(id);
}

@GetMapping(value = "/getByName/{name}")
public List<UserDetailsDTO> getUserByName(@PathVariable(name = "name") String name) {
    return userDetailsServiceFeign.getUserByName(name);
}

}

这是我的conf属性:

spring:
  application:
    name: resource-service
eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8661/eureka
  instance:
    hostname: localhost
server:
  port: 8182

共有1个答案

廖令
2023-03-14

可悲的是,我忘了提到Feign接口中的映射前缀;从而导致路径误导。

 类似资料:
  • 查看工作树的状态。 用法 git status 形态 On branch master nothing to commit, working tree clean On branch master,告诉你当前所在的分支叫 master。nothing to commit,没什么可以提交的东西,working tree clean,因为工作树是干净的。意思就是你的项目还没做什么修改,比如修改了文

  • 注:在 Status.Code 中通过枚举的方式定义状态码,这些状态码的定义非常的有参考和借鉴价值,因此详细翻译了一遍。 定义和注释 OK(0):成功 操作成功完成 CANCELLED(1):被取消 操作被取消(通常是被调用者取消) UNKNOWN(2):未知 未知错误。这个错误可能被返回的一个例子是,如果从其他地址空间接收到的状态值属于在当前地址空间不知道的错误空间(注:看不懂。。。)。此外,A

  • 帮助用户快速部署有状态的应用。 有状态应用即Statefulset。Statefulset的详细介绍内容,请参考kubernets官方文档-Statefulsets。 Pod是Kubernetes的最小编排单位,有状态statefulset主要用于部署实例之间有不对等关系,以及实例对外部数据有依赖关系的有状态应用。基于statefulset部署的应用有以下特点: 基于statefulset部署的p

  • 帮助用户快速部署无状态的应用。 无状态应用即Deployment,Deployment的详细介绍内容,请参考kubernets官方文档-Deployments。 Pod是Kubernetes的最小编排单位,无状态deployment应用即通过声明pod模板等信息编排部署无状态应用,适用于pod完全一样、没有顺序、无所谓运行在哪台主机的应用。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中

  • 这次使用两种数据来控制一个定制组件: props 和 state。props 是在父组件中指定,而且一经指定,在被指定的组件的生命周期中则不再改变。对于需要改变的数据(即变量)需要引入 state。 一般来说,需要在 constructor 中初始化 state。然后在需要修改时调用 setState 方法。 下例是制作一段不断闪烁的文字实例代码,其做法就是定时改变 <Text> 中的文字为空字符

  • Vim允许自定义每个窗口底部的状态条显示的文字,你可以通过设置statusline选项来进行自定义。执行下面的命令: :::vim :set statusline=%f 你可以在状态条上看到当前所编辑文件的路径(相对于当前路径)。再执行这个命令: :::vim :set statusline=%f\ -\ FileType:\ %y 现在你可以在状态条中看到类似foo.markdown - F

  • 问题内容: 我想为我的用户提供一种有关进度状态的信息。我发现了几个组件,例如: Richfaces状态或IceFaces连接状态 因此,我想在页面上添加类似的内容,尤其是对于ajax请求。最简单的实现方法是什么?我不想使用这些组件之一,而是想编写自己的组件,但我无法想象它需要多少努力:-) 我很感谢你的想法… 问题答案: 标准的JSF实现没有为此提供现成的组件。但是,JSF 2.0规范 在第13.

  • 在广播模式的文档中,提到没有RocksDB状态后端: 如果应用程序使用rocksdb作为状态后端,这将如何影响保存点行为?这是否意味着状态在保存点期间不存储,因此不会恢复?