java.io.IOException: Stream closed at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:359) at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:132) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at java.io.InputStreamReader.read(InputStreamReader.java:184) at java.io.BufferedReader.fill(BufferedReader.java:161) at java.io.BufferedReader.readLine(BufferedReader.java:324) at java.io.BufferedReader.readLine(BufferedReader.java:389) at com.quectel.starter.log.util.WebUtil.getRequestBody(WebUtil.java:108) at com.quectel.starter.log.util.WebUtil.getRequestContent(WebUtil.java:77) at com.quectel.starter.log.util.LogUtil.addRequestInfoToLog(LogUtil.java:20) at com.quectel.starter.log.publisher.ApiLogPublisher.publishEvent(ApiLogPublisher.java:36) at com.quectel.starter.log.aspect.ApiLogAspect.around(ApiLogAspect.java:36) 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:498) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644) at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633) at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175) at org.springframework.aop.framework.CglibAopProxy
出现的原因:easyexcel会自动关闭流
原代码
EasyExcel.write(response.getOutputStream())
.registerWriteHandler(new XCellStyleConfig())
.excelType(ExcelTypeEnum.XLSX)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
.head(heads)
.sheet("配置")
.doWrite(messageSettingDataList);
解决:
EasyExcel.write(response.getOutputStream())
.registerWriteHandler(new XCellStyleConfig())
.excelType(ExcelTypeEnum.XLSX)
.registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
// 不自动关闭流
.autoCloseStream(Boolean.FALSE)
.head(heads)
.sheet("配置")
.doWrite(messageSettingDataList);