当前位置: 首页 > news >正文

做微商那个网站好专业网站建设网页推广

做微商那个网站好,专业网站建设网页推广,wordpress菜单栏竖排,微信小程序是什么微服务远程调用之拦截器实战 前言: 在我们开发过程中,很可能是项目是从0到1开发,或者在原有基础上做二次开发,这次是根据已有代码做二次开发,需要在我们微服务一【这里方便举例,我们后面叫模版微服务】调用…

微服务远程调用之拦截器实战

前言:
在我们开发过程中,很可能是项目是从0到1开发,或者在原有基础上做二次开发,这次是根据已有代码做二次开发,需要在我们微服务一【这里方便举例,我们后面叫模版微服务】调用微服务二【后面叫系统管理模块】

需求背景
1,模版服务需要给当前系统所有用户做默认的模版数据
2,用户数据在系统管理模块里面
3,需要将没有默认模板的用户的人查找出来,添加默认模板数据。
4,一般服务与服务之间调用要有请求头信息,比如token,user_id …【遇到问题里面细讲】

使用步骤

1、引入openfeign依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2、Feignclient远程接口
package com.xx.xx.xx.feign.client;import com.xx.xx.xx.api.R;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.HttpHeaders;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;/*** @author psd *  xxx_manage_service 远程调用微服务的名字* 请求地址是全路径地址**/
@FeignClient(name = "xxx_manage_service")
public interface SmartGateWayClient {@GetMapping("/api/xx/portalMyConfig/queryAllPortalMyConfig")R<List<MyxxxConfigVo>> queryAllMyxxxConfigVo();}
3、编写feignClient拦截器

每次远程调用前,设置请求头信息

package com.xx.xx.xx.interceptor;import feign.RequestInterceptor;
import feign.RequestTemplate;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;import javax.servlet.http.HttpServletRequest;/*** @author psd 远程调用拦截器设置头参数信息*/
@Slf4j
@Component
public class FeignClientInterceptor implements RequestInterceptor {HttpServletRequest request;public FeignClientInterceptor(HttpServletRequest request) {this.request = request;}@Overridepublic void apply(RequestTemplate requestTemplate) {// 设置请求头的数据requestTemplate.header("Authorization",request.getHeader("Authorization"));// TODO:有的还需要添加 user_id 信息 log.info("FeignClientInterceptor 拦截器中的请求头的信息 Authorization :{}",request.getHeader("Authorization"));}
}
4、主启动类添加@EnableFeignClients 注解
package com.xx.xxx.platform;import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableScheduling;
import springfox.documentation.swagger2.annotations.EnableSwagger2;/*** @author psd*/@RefreshScope
@EnableSwagger2
@EnableScheduling
@EnableFeignClients
@EnableDiscoveryClient
@MapperScan("xx.xx.xx.xx.mapper")
@SpringBootApplication
public class PortalPlatformApplication {public static void main(String[] args) {SpringApplication.run(PlatformApplication.class, args);}
}

遇到的问题

1、使用Feignclient 是从网关还是直接走指定微服务

网关现在理解就是所有的请求都走网关,就是负载均衡,路由转发作用… 看项目需求一般走指定微服务

2、编写Feignclient拦截器时候,有时需要添加user_id 信息,在系统管理服务里面有拦截,这个不一定,具体业务具体分析
3、有个远程调用返回MyxxxConfigVo 里面有个时间
 /*** 创建时间*/private LocalDateTime createTime;/*** 修改时间*/private LocalDateTime updateTime;

在项目接收方也是这个数据类型,报以下异常
Caused by: org.springframework.web.client.RestClientException: Error while extracting response for type [com.pubinfo.smart.common.web.R<java.util.List<com.xx.xx.xx.feign.vo.MyxxxConfigVo >>] and content type [application/json;charset=UTF-8]; nested exception is org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: Cannot deserialize value of type java.time.LocalDateTime from String “2024-05-25T16:25:02”: Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text ‘2024-05-25T16:25:02’ could not be parsed at index 10; nested exception is com.fasterxml.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type java.time.LocalDateTime from String “2024-05-25T16:25:02”: Failed to deserialize java.time.LocalDateTime: (java.time.format.DateTimeParseException) Text ‘2024-05-25T16:25:02’ could not be pars
大概意思是返回JSON String “2024-05-25T16:25:02”: 不能转换为 LocalDateTime 类型的时间。

修改为以下问题解决。

    /*** 创建时间*/@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")private LocalDateTime createTime;/*** 修改时间*/@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss")private LocalDateTime updateTime;
4、自定义模版服务调用系统管理服务 在请求的时候报 用户不存在

详细描述:
但是添加了token的信息,且token不为空,这个后面猜测可能是在系统管理服务里面有个拦截器需要校验user_id 是否为空,为空就报异常。
后面在远程调用前添加 请求头信息user_id 的值。问题解决

喜欢我的文章的话,点个阅读或者点个点赞,是我编写博客的动力,持续更新中 ing…

http://www.yayakq.cn/news/622611/

相关文章:

  • 上海网站优化加盟手机可以做软件开发吗
  • 网站建设小组的运营模式双流兴城投资建设有限公司网站
  • php做网站最容易网站建设毕业设计评价
  • c 网站模板重庆施工许可证查询系统
  • 公司做网站需准备资料wordpress4.6+中文
  • 石家庄网站建设高端信息门户网站建设
  • 做一个网站需要多大的空间wordpress获取标签页
  • 企业网站建设价格表王老吉网络营销案例分析
  • 学会网站建设总结iis7搭建aspx网站
  • python做网站的案例网站建设的缺陷
  • 网站建设-信科网络网站开发技术学习
  • 昆山商城网站建设办公室装修效果图简约大气
  • dede织梦仿站网站建设本机网站环境搭建
  • 网站制作手机网络运维工程师求职信
  • 厦门网站推广¥做下拉去118cr在线制作动画的网站
  • 龙岗区住房和建设局网站打不开东莞哪里开发app的
  • 网站优化的重要性阿克苏地区建设局网站
  • 繁体版 企业网站中山市建设局网站
  • 山西本土网站建设html5快速建站
  • 西安做网站哪里好济南做网站最好的单位
  • 网站建设公司接单上海网站搜索排名优化哪家好
  • 深圳企业医疗网站建设wordpress 301代码
  • 个人博客网站搭建店面设计属于什么设计
  • 地方网站系统山东济南网站建设公司哪家好
  • 申请学校网站建设申请书济南市建设局官网
  • 网站建设制作 企业站开发哪家好wordpress添加微信
  • 怎么看别人网站怎么做的优化erp软件有哪些
  • .net网站费用唐山网络运营推广
  • 电梯配件做外贸在哪个网站网站建设话术开场白
  • 长春建设厅官方网站开发购物商城app需要多少钱