springboot中getOutputStream() has already been called for this response和java.io.FileNotFoundException

这个异常挺多人遇到的,不过我看了一下,跟我们的情况都不一样。

1.    流没关闭。

2.    未设置响应头。

3.    jsp页面需要清空流。


说一下我们遇到的情况。就是一个简单的sprinboot项目。

用的是springboot 1.5.6,本地启动后用花生壳内网映射

在用httpclient请求项目接口,会报以下的错误。

1. Forwarding to error page from request [/xxx/xxx] due to exception [getOutputStream() has already been called for this response](接口项目报这个错)

2. java.io.FileNotFoundException: http://1xxx/xxx/xxx/xxx(httpclient项目报这个错)

信息如下(接口项目):

[ERROR] o.springframework.boot.web.support.ErrorPageFilter - Forwarding to error page from request [/xxx/xxx] due to exception [getOutputStream() has already been called for this response]java.lang.IllegalStateException: getOutputStream() has already been called for this responseat org.apache.catalina.connector.Response.getWriter(Response.java:624)at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:211)at javax.servlet.ServletResponseWrapper.getWriter(ServletResponseWrapper.java:109)at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:335)at org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190)at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1286)at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1041)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:984)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:123)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:728)at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:467)at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:392)at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:311)at org.springframework.boot.web.support.ErrorPageFilter.handleErrorStatus(ErrorPageFilter.java:149)at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:117)at org.springframework.boot.web.support.ErrorPageFilter.access$000(ErrorPageFilter.java:59)at org.springframework.boot.web.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:90)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.springframework.boot.web.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:108)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80)at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)
信息如下(客户端请求项目):
java.io.FileNotFoundException: http://1xxx/xxx/xxx/xxxat sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1836)at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)at com.ruidou.insurance.utils.HttpUtil.doPost(HttpUtil.java:259)at com.ruidou.insurance.test.InsuranceTest.queryInsurance(InsuranceTest.java:109)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:497)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:252)at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:94)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)

问题猜想:

1.     springboot项目配置了thymeleaf模板,由于404请求跳转error.html。

2.     由于没有error.html,导致客户端变成了file找不到。

3.     花生壳映射问题,在服务器好像是没有问题,证明代码没有问题。

解决方式:

1.     检查请求是否404。

2.     关闭thymeleaf的配置。

3.     不要用花生壳。在服务器上如果还出现类似问题,可能就是代码的问题了。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

eclipse搜索框太小

解决方式: Window>Preferences>DevStyle>Inline Search 把 use the inline search 取消勾选

fileinput 加 ftp 加 nginx 加 SpringBoot上传文件

亲测可用 准备linux服务器 https://www.cnblogs.com/shuaifing/p/8268949.html 搭建ftp https://www.cnblogs.com/shuaifing/p/8260532.html Springboot整合fileinput 上传文件https://www.cnblogs.com/shuaifing/p/8274906.html 页面 引入 jquery boostrap fileinput.min.js…

[css] css中最常用的字体有哪些?你是怎么选择字体的?

[css] css中最常用的字体有哪些?你是怎么选择字体的? 总结: win:微软雅黑为Win平台上最值得选择的中文字体,但非浏览器默认,需要设置;西文字体的选择以Arial、Tahoma等无衬线字体为主。 mac&am…

springboot redis shiro 实现 单点登录

大家好,我是烤鸭:今天给大家分享简单的单点登录的实现方式。环境及jar包:springboot 1.5.10 redis 2.9.0 (可以用tomcat的session,但是无法解决多个tomcat共享session的问题)shiro 1.4.0 lombok …

IntelliJ IDEA 控制台最大化

快捷键一: ctrlshift方向键上下 快捷键二: CtrlShift"

Centos7安装Hadoop教程

一:安装SSH 1,执行下面的命令安装ssh yum install openssh-clients yum install openssh-server 2,执行如下命令测试一下 SSH 是否可用(SSH首次登陆提示 yes/no 信息,输入 yes 即可,然后按照提示输入 root…

[css] 请举例说明css有哪些不可继承的属性?

[css] 请举例说明css有哪些不可继承的属性? 1、display:规定元素应该生成的框的类型2、文本属性:vertical-align:垂直文本对齐text-decoration:规定添加到文本的装饰text-shadow:文本阴影效果white-space&…

elasticsearch 6.x (一) 部署 windows入门 spingboot连接

大家好,我是烤鸭:今天分享的是 elasticsearch 6.x 部署 windows服务器。环境:win10elasticsearch-6.2.4springboot 2.0.0.RELEASE1. 官网下载elasticsearch这个是最新版本的es下载地址。https://www.elastic.co/downloads/elasticsearch选择z…

Programming Assignment 5: Burrows–Wheeler Data Compression

Programming Assignment 5: Burrows–Wheeler Data Compression 1. 题目阅读 实现Burrows-Wheeler数据压缩算法。这个革命性的算法产生了gzip和pkzip,并且相对容易实现,还不受任何专利保护。它构成了unix压缩实用程序bzip2的基础。 这个算法由以下三种算…

hadoop Connection refused: no further information原因排查(Centos7)

一:排查防火墙,是否开放9000端口 firewall-cmd --list-ports查看防火墙是否有9000端口,如果没有,通过下面的命令添加端口: firewall-cmd --zonepublic --add-port9000/tcp --permanent systemctl restart firewalld…

[css]你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用?

[css]你有使用过preload、preconnect、prefetch这些属性吗?说说它们都有什么作用? preload 元素的 rel 属性的属性值preload能够让你在你的HTML页面中元素内部书写一些声明式的资源获取请求,可以指明哪些资源是在页面加载完成后即刻需要的。…

elasticsearch 6.x (二) linux部署 kibana x-pack 安装

大家好,我是烤鸭: 环境:linux Cent OS 7.3elasticsearch-6.2.4 1. 下载elasticsearch https://www.elastic.co/downloads/elasticsearch 上面的网址直接下载的话,实在太慢了。官方还提供了另一种方式。 https://www.elastic.co…

Kali Linux ——在无网络情况下安装无线网卡驱动

1、背景: 今日刚刚开始学习kali linux,众所周知,安装完成后,系统是没有无线网卡驱动的,这就对学生党造成相当的困扰:校园网要连接有线是需要认证客户端的,而认证客户端只有windows端&#xff0c…

HADOOP_HOME and hadoop.home.dir are unset 报错处理

一般是windows才会出现这个问题 请看下面的解决方案: 第一步:下载winutils-master.zip Gitee地址:https://gitee.com/nkuhyx/winutils.git 蓝奏云:https://www.lanzoux.com/i55ccnc Github地址:https://github.com/cda…

[css] 你是怎样对css文件进行压缩合并的?

[css] 你是怎样对css文件进行压缩合并的? 使用在线网站进行压缩,如http://tool.lu/css如使用Gulp,可使用gulp-minify-css进行压缩如使用WebPack,可使用optimize-css-assets-webpack-plugin进行压缩个人简介 我是歌谣,…

elasticsearch 6.x (三) linux 集群多节点部署

大家好,我是烤鸭:关于集群内单个节点部署,请参考上一篇文章。elasticsearch 6.x linux部署(二) kibana x-pack 安装环境:linux Cent OS 7.3elasticsearch-6.2.41. 下载多个es安装每个安装步骤都是一样的。2. 修改配置文件(重…

ztree改变节点颜色

//找到节点对象 var node ztree.getNodesByParam("id",aaaaaaaaaabbbbbb, null)[0]; if(node!null){//找到span标签,并改变颜色$("#"node.tId"_span").css("color",red); }

版本下载地址

http://chromedriver.storage.googleapis.com/index.html转载于:https://www.cnblogs.com/nvhanzhi/p/9887999.html

[css] css3和css2的区别是什么?

[css] css3和css2的区别是什么? css3增加了更多特性:动画、过渡效果,圆角、文字特效等个人简介 我是歌谣,欢迎和大家一起交流前后端知识。放弃很容易, 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端…

springboot-devtools idea或eclipse 热加载

大家好&#xff0c;我是烤鸭&#xff1a;今天分享一下springboot项目的热加载。第二种方式在eclipse和idea中都可以。虽然会有一些小坑。 方式有两种&#xff1a; 1. springloaded(无效) <!-- https://mvnrepository.com/artifact/org.springframework/springloaded -->…