lfiefjw09 2024-04-26 15:37 采纳率: 0%
浏览 49

jeecgboot 503错误

jeecgboot 登录成功后调用app接口时出错
loginUser = commonApi.getUserByName(username);
feign.FeignException$ServiceUnavailable: [503] during [GET] to [http://jeecg-system/sys/api/getUserByName?username=?] [ISysBaseAPI#getUserByName(String)]: [Load balancer does not contain an instance for the service jeecg-system]

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2024-04-26 15:37
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    【问题概括】:这个问题的目的是要解决在使用jeecgboot框架进行开发时,登录成功后通过FeignClient调用服务接口出现503服务不可用错误的问题。

    【问题出现原因】:根据提供的信息,出现503错误的原因可能是负载均衡器没有找到名为jeecg-system的服务实例。这通常意味着服务没有被注册到服务中心,或者服务注册失败,导致FeignClient无法找到对应的服务提供者。

    【问题解决方案】:为了解决这个问题,我们需要检查以下几个方面:

    1. 确保jeecg-system服务已经正确启动并且注册到了服务中心(如Eureka)。
    2. 检查服务发现和注册的配置是否正确,包括服务名、端口以及服务中心的地址。
    3. 确认FeignClient的配置是否正确,包括服务名和服务路径。
    4. 如果使用了负载均衡器,检查负载均衡器的配置,确保它指向了正确的服务实例。

    【提供代码】:以下是FeignClient的一个配置示例,需要根据实际情况进行调整:

    @FeignClient(name = "jeecg-system", fallback = SysUserFallback.class)
    public interface SysUserClient extends ISysBaseAPI {
        @GetMapping("/sys/api/getUserByName")
        SysUser getUserByName(@RequestParam("username") String username);
    }
    
    public class SysUserFallback implements ISysBaseAPI {
        // 实现服务降级逻辑
        @Override
        public SysUser getUserByName(String username) {
            // 处理调用失败的情况
            return new SysUser();
        }
    }
    

    【代码运行方式】:需要将上述FeignClient代码集成到现有的jeecgboot项目中,并确保所有的服务都配置了正确的服务中心地址。之后,重新启动服务并进行测试。

    【代码预期运行结果】:如果服务注册和FeignClient配置正确,调用getUserByName方法时将不会收到503错误,而是能够成功获取用户信息。

    【推荐相关链接】:

    1. FeignClient官方文档【10】
    2. Spring Cloud服务注册与发现
    3. Spring Cloud Feign服务调用失败排查【6】
    4. JeecgBoot GitHub仓库【9】
    5. JeecgBoot开发文档【2】
    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月26日