Feign调用报500的问题解决

Feign调用报500的问题解决

最近项目使用feign调用其他服务,报了500.
feign.FeignException$InternalServerError: [500 Internal Server Error] during [POST] to [http://nike-rr-system/operLog] [RemoteLogService#saveLog(OperLogDTO)]:
[{“timestamp”:“2023-08-15T14:07:37.299+08:00”,“status”:500,“error”:“Internal Server Error”,“path”:“/operLog”}]

查了网上很多资料,发现是payload中有中文导致的。改为英文就好了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在使用Spring Cloud时,如果集成了Spring Security,并且在服务A调用服务B时使用Feign请求,在调用时可能会遇到401授权认证的问题。这个问题解决办法是在Feign调用请求时携带token。可以通过在资源包中引入相关的依赖包来实现。具体的步骤如下: 1. 首先,在服务A的pom.xml文件中添加必要的依赖包,包括Spring Cloud FeignSpring Security相关的依赖。例如,可以添加以下依赖: ``` <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> ``` 2. 然后,在服务A的配置文件中配置Spring Security,包括定义认证和授权规则。可以参考Spring Security的官方文档来配置相关的规则。 3. 接下来,在服务A中定义Feign客户端接口,并使用@RequestHeader注解来传递token。例如,可以在Feign客户端接口的方法上添加@RequestHeader注解,如下所示: ``` @FeignClient(name = "serviceB") public interface ServiceBClient { @GetMapping("/resource") String getResource(@RequestHeader("Authorization") String token); } ``` 4. 最后,在服务A的代码中调用Feign客户端接口的方法,并传递token。例如,可以在服务A中的某个方法中使用@Autowired注解来注入Feign客户端接口,并调用接口的方法,如下所示: ``` @Autowired private ServiceBClient serviceBClient; public void someMethod() { String token = "your_token_here"; String resource = serviceBClient.getResource("Bearer " + token); } ``` 通过以上步骤,您可以在Feign调用请求中携带token,从而解决Feign调用Full authentication is required to access this resource的问题。<span class="em">1</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值