- 博客(4)
- 收藏
- 关注
原创 解决getOutputStream()/getWriter() has already been called for this response
所以出现这个错误可能是因为框架某一处已经调用了getWriter()或getOutputStream(),可以去查看项目中拦截器、过滤器或者自定义异常处理器中是否连续使用了这两个方法,是的话统一这个方法即可,即提示getOutputStream()已经被调用,后面全部使用getOutputStream()即可,别用getWriter(),提示getWriter()同理全部使用getWriter()。在调用getWriter()方法时,会先进行flag判断。
2024-11-25 10:17:45
1579
原创 request流只能读取一次的问题
每次调用后的getInputStream方法都是从复制出来的二进制数组中进行获取,这个二进制数组在对象存在期间一致存在。使用Filter过滤器,在一开始,替换request为自己定义的可以多次读取流的request。这样就实现了流的重复获取。比如使用了filter或者aop在接口处理之前,获取了request中的数据,对参数进行了校验,那么之后就不能在获取request请求流了。在接口调用链中,request的请求流只能调用一次,处理之后,如果之后还需要用到请求流获取数据,就会发现数据为空。
2024-11-25 09:33:45
340
原创 字符编码转换踩雷:GBK与UTF-8
一直以为,java中任意unicode字符串,可以使用任意字符集转为byte[]再转回来,只要不抛出异常就不会丢失数据,事实证明这是错的。经过这个实例,也明白了为什么 getBytes()需要捕获异常,虽然有时候它也没有捕获到异常。言归正传,先看一个实例。
2024-11-23 17:12:02
3497
1
原创 springboot2.6.x及以上版本整合swagger2遇到的问题
如果这些属性或方法返回 null(比如这里的HandlerMethod的getPatternsCondition() ),那么在尝试调用 iterator() 方法时,就会抛出 NullPointerException。正常到这,加上配置将策略改回ant-path-matcher已经就可以正常启动了,但是我在springboot2.6.x引入我的自定义swagger starter的时候,也加上这个配置了,还是一样报错。通常这种错误发生在调用一个空对象的方法或者访问一个空对象的属性时。
2024-11-23 16:45:16
752
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅