Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >异步回调方法 调用返回Cannot render error page for request [xxxxx] as the response has already been commited. A

异步回调方法 调用返回Cannot render error page for request [xxxxx] as the response has already been commited. A

作者头像
oktokeep
发布于 2025-03-25 05:37:02
发布于 2025-03-25 05:37:02
4800
代码可运行
举报
文章被收录于专栏:第三方工具第三方工具
运行总次数:0
代码可运行

异步回调方法 调用返回Cannot render error page for request xxxxx as the response has already been commited. As a result, 解决方案

错误原因:

响应已经提交之后,仍然尝试渲染错误页面。这种情况可能会导致响应状态码不正确,从而引发其他问题。

解决方法:

1.不要return统一结果包装类,直接return null;

2.返回值直接改为void

返回结果通过:response.getOutputStream().write(new String(tr4XML).getBytes("UTF-8")); 返回。

3.将Controller类的注解:@Controller 改成 @RestController 返回json对象

如下DEMO:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
@RestController
@Scope("prototype")
@RequestMapping("/pay/")
public class PayController { 

    @RequestMapping("notifyRcv")
    public ReturnResult notifyRcv(@RequestParam Map<String, String> getParam, HttpServletRequest request, HttpServletResponse response) {
        
        ... 回调处理 业务逻辑
        
        return new ReturnResult(0, "调用成功", new HashMap<>());
    }

}
    
public class ReturnResult {
    private Integer sub_code;
    private String sub_message;
    private Map sub_result;
    // set get方法 ..    
}

调用方式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Map<String,String> notifyMap = new HashMap<>();
notifyMap.put(”orderId”, “tt12556688”);
notifyMap.put(”status",1);
//前提是:‌@RestController而不是‌@Controller 来注解接口
String url = "http://localhost:8081/pay/notifyRcv";
//使用字符串接收
String json = restTemplate.postForObject(url, notifyMap, String.class);
logger.info(">>>>>>构造异步通知返回结果:json=[{}],params=[{}]",json,GsonUtils.toJson(notifyMap));
                                
//仅仅测试,测试通过。使用对象接收也可以
ReturnResult json2 = restTemplate.postForObject(url, notifyMap, ReturnResult.class);
logger.info(">>>>>>构造异步通知返回结果22:json=[{}],params=[{}]",GsonUtils.toJson(json2),GsonUtils.toJson(notifyMap));

 link:Controller和RestController注解区别

https://cloud.tencent.com/developer/article/2507772

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-03-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Controller和RestController注解区别
Controller和RestController注解在Spring框架中主要用于处理HTTP请求,但它们在返回类型和使用场景上有显著区别。‌
oktokeep
2025/03/25
500
Illegal character ((CTRL-CHAR, code 31))问题排查 gzip接口返回 RestTemplate GET POST请求
Illegal character ((CTRL-CHAR, code 31))问题排查 gzip接口返回
oktokeep
2024/10/09
1190
日志切面接口和方法demo,切面内重新抛出异常
oktokeep
2024/10/09
1170
RestTemplate exchange GET POST请求传参数DEMO
link: Illegal character ((CTRL-CHAR, code 31))问题排查 gzip接口返回 RestTemplate GET POST请求 https://www.cnblogs.com/oktokeep/p/16769602.html
oktokeep
2024/11/28
510
真不是我吹,Spring里这款牛逼的网络工具库我估计你都没用过!
传统情况下,在服务端代码里访问 http 服务时,我们一般会使用 JDK 的 HttpURLConnection 或者 Apache 的 HttpClient,不过这种方法使用起来太过繁琐,而且 api 使用起来非常的复杂,还得操心资源回收。
Java极客技术
2022/12/04
1.4K0
真不是我吹,Spring里这款牛逼的网络工具库我估计你都没用过!
SpringBoot项目:RedisTemplate实现轻量级消息队列(含代码)
1、excel文件读写--阿里easyexcel sdk 2、文件上传、下载--腾讯云对象存储 3、远程服务调用--restTemplate 4、生产者、消费者--redisTemplate leftPush和rightPop操作 5、异步处理数据--Executors线程池 6、读取网络文件流--HttpClient 7、自定义注解实现用户身份认证--JWT token认证, 拦截器拦截标注有@LoginRequired注解的请求入口
搜云库技术团队
2020/01/14
2.6K0
SpringBoot项目:RedisTemplate实现轻量级消息队列(含代码)
微信公众号支付开发全过程(java版)
因为微信支付需要较高的权限,只有认证了得服务号才有使用微信支付接口的权限,我们个人很难申请到,所以需要向其他朋友借用账号。
好好学java
2018/07/08
1.3K0
微信公众号支付开发全过程(java版)
SpringCloud 整合zookeeper搭建服务注册中心原
1 导入pom <!--一定要保证安装的zookeeper版本和导入的包版本一致--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId> <exclusions> <!--先排除自带的zooke
用户5927264
2020/04/24
6230
Java映射 转换post response T data
接上篇 Java泛型对象在http请求和响应对象中的封装 https://www.cnblogs.com/oktokeep/p/17688322.html
oktokeep
2024/10/09
870
ajax请求后后,response有数据,但是进入error方法
但是我这里RequestMapping没有指定method = RequestMethod.POST RequestMapping没有指定的话,是根据前端自适应的,但是前端指定了,requestMapping也一定要指定。我猜的。 解决: 1.ajax去掉 type: "post", 2.RequestMapping加上method = RequestMethod.POST
HaC
2020/12/30
1.4K0
Spring Cloud Ribbon:负载均衡的服务调用
在微服务架构中,很多服务都会部署多个,其他服务去调用该服务的时候,如何保证负载均衡是个不得不去考虑的问题。负载均衡可以增加系统的可用性和扩展性,当我们使用RestTemplate来调用其他服务时,Ribbon可以很方便的实现负载均衡功能。
macrozheng
2019/09/17
7770
微信公众号支付开发全过程(java版)
一、微信官方文档微信支付开发流程(公众号支付) 首先我们到微信支付的官方文档的开发步骤(https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter
好好学java
2018/08/01
6170
微信公众号支付开发全过程(java版)
@Valid + BindingResult 拦截接口错误信息
@Valid + BindingResult 拦截接口错误信息 ###测试发现: HttpServletRequest request, HttpServletResponse response, 需要去掉,否则无法输出message错误消息 ###测试发现 @Validated @Valid 这两个注解方法都可以。
oktokeep
2024/10/09
820
【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2020/10/29
8370
【高并发】亿级流量场景下如何为HTTP接口限流?看完我懂了!!
自定义注解:springboot+vue-限制接口调用
公司前端项目用的是vue,后端用的是Springboot。因为最近公司业务的原因,需要根据条件限制接口的调用。限制的条件是根据指定的key获取Redis中value的值,然后判断value中的日期往后推一年(例如value中的日期是:2018-09-12,往后推一年就是2019-09-12)是否大于当前日期。如果大于则可访问(这里的可访问指的是可访问所有接口)。反之,则所有接口不可访问。
JAVA葵花宝典
2019/09/17
6450
玩转Spring Boot之RestTemplate的使用
在java代码里想要进行restful web client服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。Spring Boot提供了一种简单便捷的内置模板类来进行操作,这就是RestTemplate。
闫同学
2022/10/31
6100
@RestController 和 @Controller 的区别[通俗易懂]
@RestController注解,相当于@Controller+@ResponseBody两个注解的结合,返回json数据不需要在方法前面加@ResponseBody注解了,但使用@RestController这个注解,就不能返回jsp,html页面,视图解析器无法解析jsp,html页面
全栈程序员站长
2022/07/02
4440
@RestController 和 @Controller 的区别[通俗易懂]
基于Springboot整合RestTemplate调用Webservice接口
1、基于Springboot整合RestTemplate调用Webservice接口,如果感觉使用webservice客户端调用服务器端不会,或者不方便 的时候,可以尝试使用RestTemplate来调用Webservice接口。
别先生
2021/06/10
3.5K0
基于Springboot整合RestTemplate调用Webservice接口
微服务远程调用简单总结
剩下的就只需要注入,然后就像调用一个方法一样直接调用接口即可,如果遇到延迟较大超时等问题,就需要在yml自己配置超时时间。
Diuut
2022/11/22
3060
微服务调用链的排查,请求日志排查超时时间,锁定超时的原因
A微服务 >> B微服务 >> C微服务 论日志的请求开始时间和结束时间的重要性。
oktokeep
2024/10/09
980
推荐阅读
相关推荐
Controller和RestController注解区别
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文