分布式微服务项目,同一个controller方法间的转发导致cookie丢失,报错null pointer异常

源码:

/***添加商品进入购物车*/
@GetMapping("/addToCart")
public String addToCart(@RequestParam("num") Integer num, @RequestParam("skuId") Long skuId, RedirectAttributes redirectAttributes) {System.out.println("num=" + num+",skuId="+skuId);CartItemVo cartItemVo = cartService.addToCart(num,skuId);redirectAttributes.addAttribute("skuId",skuId);redirectAttributes.addAttribute("num", num);return "redirect:/addToCartSuccess.html";
}@GetMapping("/addToCartSuccess.html")
public String addToCartPage(@RequestParam("num") Integer num, @RequestParam("skuId") Long skuId, Model model) {CartItemVo cartItemVo =  cartService.getCartItem(skuId);cartItemVo.setCount(num);model.addAttribute("item",cartItemVo);return "success";
}

错误原因:

本服务为购物车服务,域名为cart.jxxdymall.com,由于第一个请求来自另一个域名为item.jxxdymall.com的服务,而cookie的作用域被我设置为了jxxdymall.com,在方法间进行转发的时候,转发之前的路径是http://item.jxxdymall.com/4.html,转发之后变为http://192.168.56.1:15002/addToCartSuccess.html?skuId=4&num=1,导致了cookie丢失

解决办法:

重定向时使用完整路径

        /***添加商品进入购物车*/@GetMapping("/addToCart")public String addToCart(@RequestParam("num") Integer num, @RequestParam("skuId") Long skuId, RedirectAttributes redirectAttributes) {System.out.println("num=" + num+",skuId="+skuId);CartItemVo cartItemVo = cartService.addToCart(num,skuId);redirectAttributes.addAttribute("skuId",skuId);redirectAttributes.addAttribute("num", num);return "redirect:http://cart.jxxdymall.com/addToCartSuccess.html";}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/13710.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Station Editor更新和版本回退

一、更新 第一步点击import 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 第十一步 第十二步 第十三步 、 第十四步 第十五步 第十六步 点击完update才能继续下一步 第十七步 第十八步,结束出来刷新一下就可以了

如何利用亚马逊自养号测评,实现店铺稳定出单的策略

企业的发展通常会经历一系列阶段,从起步、立足市场,到迅速扩张、达到顶峰,再到可能的市场适应或转型期,亚马逊平台上的店铺发展路径亦是如此。为了确保店铺能够长期立足于市场,关键在于有效利用其快速成长期和成熟期&a…

【Linux】基础IO及文件描述符相关内容详细梳理

0. C语言文件I/O 在C语言中,我们学习了相关函数来读写文件,例如:fopen,fwrite,fread,fprintf等, 在C语言中文件的打开方式: r Open text file for reading. …

DIY了一台无人机,用全志T113芯片

‌无人机飞控是无人机的核心部分,一般包括传感器、机载计算机和伺服作动设备三大部分,能否在对重量和体积有严苛要求的无人机结构上部署具有稳定功能的飞控,是影响无人机飞行表现的重要因素。 基于此,作者就基于全志T113-S3设计了…

vue+springboot天气预测大数据2+1架构|必须带有管理端和数据库爬虫等|机器学习预测使用

文末有CSDN官方提供的麦麦的联系微信! 文末有CSDN官方提供的麦麦的联系微信! 🩷编号:R04 🩷架构:21架构,大屏端管理端后端,vuespringbotmysql 🩵全新开发,代码完整&#…

Tofu AI视频处理模块视频输入配置方法

应用Tofu产品对网络视频进行获取做视频处理时,首先需要配置Tofu产品的硬件连接关系与设备IP地址、视频拉流地址。 步骤1 Tofu设备点对点直连或者通过交换机连接到电脑,电脑IP配置到与Tofu默认IP地址同一个网段。 打开软件 点击右上角系统设置 单击左侧…

地区级的可视化地图不设计,进来看看超炫的样式吧

地区级的可视化地图如果精心设计,能带来超炫的视觉效果。可以运用丰富的色彩来区分不同区域,使地图更加生动鲜明。 采用立体的图形设计,让地形地貌更加直观。添加动态效果,如数据的实时更新流动、热点区域的闪烁等,增…

《AI 使生活更美好》

《AI 使生活更美好》 当我们步入科技腾飞的时代,人工智能(AI)如同一颗璀璨的新星,照亮了我们生活的每一个角落。它以惊人的速度改变着我们的世界,从医疗到教育,从交通到娱乐,AI 正以前所未有的力…

数据结构 ——— 链式二叉树的销毁(释放)

目录 链式二叉树示意图 手搓一个链式二叉树 代码实现 示意图 手搓一个链式二叉树 代码演示: // 数据类型 typedef int BTDataType;// 二叉树节点的结构 typedef struct BinaryTreeNode {BTDataType data; //每个节点的数据struct BinaryTreeNode* left; //指向…

马斯克万卡集群AI数据中心引发的科技涟漪:智算数据中心挑战与机遇的全景洞察

一、AI 爆发重塑数据中心格局 随着AI 技术的迅猛发展,尤其是大模型的崛起,其对数据中心产生了极为深远的影响。大模型以其数以亿计甚至更多的参数和对海量数据的处理需求,成为了 AI 发展的核心驱动力之一,同时也为数据中心带来了…

LLM之模型评估:情感评估/EQ评估/幻觉评估等

如果您想知道如何确保 LLM 在您的特定任务上表现出色,本指南适合您!它涵盖了评估模型的不同方法、设计您自己的评估的指南以及来自实践经验的技巧和窍门。 Human-like Affective Cognition in Foundation Models:情感认知评估 研究者们提出了…

2024年大语言模型理论与实践报告|附77页PDF文件下载

本文提供完整版报告下载,请查看文后提示。 以下为报告节选: … 文│复旦大学 张奇 本报告共计:77页。 大模型&AI产品经理如何学习 求大家的点赞和收藏,我花2万买的大模型学习资料免费共享给你们,来看看有哪些…

项目总结报告,软件项目工作总结报告,项目总体控制报告,实施总结,运维总结等全资料(Word)

1. 项目进度 1.1. 进度表 1.2. 总结偏差 2. 项目成本 2.1. 项目规模 2.2. 项目工作量 3. 项目质量 3.1. 评审 4. 计划偏差 5. 测试总结 5.1. 缺陷分析 5.2. 测试Bug分布统计 5.3. Bug分布图 5.4. 总结 6. 最佳实践 7. 经验教训 7.1. 项目过程管理 7.2. 合同完成度管理 7.3. 项目…

javaScript运算符

2.3、运算符 运算符也叫操作符,通过运算符可以对一个值或者多个值进行运算,并获取运算结果,常用于实现赋值、比较、执行算数运算符等功能的符号。 比如typeof 就是一个运算符,可以获得一个值的类型,它会将该值的类型以字符串的形…

六通道CAN集线器

六通道CAN集线器 --SG-CanHub-600 功能概述 SG_CanHub_600是一款具有六路通道的工业级智能 CAN数字隔离中继集线器。 SG_CanHub_600能够实现信号再生、延长通信距离、提高总线负载能力、匹配不同速 率 CAN网络,同时强大的 ID过滤功能可以极大降低 CAN总线负荷&a…

5分钟教你利用kimi+美图免费制作高质量、高点击动物冒险动画短片(含完整的操作步骤)

昨天十一点的时候,收到美图创作者通过了。与可灵、即梦等其他AI视频工具不同的是,MOKI专注于AI短片创作这一场景,覆盖动画短片、网文短剧、故事绘本、MV等多个类型的视频内容生产,结合行业需求,有针对性地打造了一套AI短片创作工作…

RocketMQ-01 消费模型和部署模型简介

消息队列的主要作用是对系统进行异步、削峰、解耦等,在日常开发中使用非常广泛。基于市面上几款消息队列,常见有:rabbitmq, activemq, rocketmq, kafka, Pulsar等,各有侧重,技术选型需根据自身系统业务定型。但基于国内…

贪心算法day03(最长递增序列问题)

目录 1.最长递增三元子序列 2.最长连续递增序列 1.最长递增三元子序列 题目链接:. - 力扣(LeetCode) 思路:我们只需要设置两个数进行比较就好。设a为nums[0],b 为一个无穷大的数,只要有比a小的数字就赋值…

基于JDBC的书库系统(MySQL)

一、创建数据库中的表 1、需求 有一张表叫javabook【创建表要求使用sql语句进行】 表中列 bookid 整数自增类型 表中列 bprice 小数类型 表中列 bookname 字符串类型 长度不能小于50 工程和包要求: domain dao …

2024 微信支付公钥 JAVA完整代码参考

需要用到的链接: 微信支付公钥使用介绍 - 平台证书 | 微信支付商户文档中心 GitHub - wechatpay-apiv3/wechatpay-java: 微信支付 APIv3 的官方 Java Library 谨记 如果有疑问 多看几遍 wechatpay-java的readme 和 example 创建预支付 Overridepublic ResultBean&…