1
回答
IllegalStateException: cannot buffer both text and bytes求解
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

该异常是客户服务器发生的,在自己本机不存在这个问题,百度一下,完全没有人遇到这个问题,不知道什么原因,这个异常是在springMVC文件下载时产生的,不知道怎么解决,求解,谢谢

java.lang.IllegalStateException: cannot buffer both text and bytes
	at com.ibm.ws.cache.servlet.CacheProxyResponse.flushOutput(CacheProxyResponse.java:103)
	at com.ibm.ws.cache.servlet.ESISupport.handleESIPostProcessing(ESISupport.java:162)
	at com.ibm.ws.cache.servlet.CacheHook.postProcess(CacheHook.java:646)
	at com.ibm.ws.cache.servlet.CacheHook.handleFragment(CacheHook.java:573)
	at com.ibm.ws.cache.servlet.CacheHook.handleServlet(CacheHook.java:255)
	at com.ibm.ws.cache.servlet.ServletWrapper.service(ServletWrapper.java:259)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1214)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:774)
	at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:456)
	at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:125)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:92)
	at com.icom.yth.qn.filter.UserFilter.doFilter(UserFilter.java:49)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at com.icom.base.sys.log4j.LogFilter.doFilter(LogFilter.java:214)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
	at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
	at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
	at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
	at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
	at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
	at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:380)
	at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
	at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at com.icom.base.sys.web.CacheControlFilter.doFilter(CacheControlFilter.java:43)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at com.icom.base.sys.shiro.NoHostFilter.doFilter(NoHostFilter.java:29)
	at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:192)
	at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:89)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:926)
	at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1023)
	at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3703)
	at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:304)
	at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:962)
	at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662)
	at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:195)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:458)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:522)
	at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:311)
	at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:87)
	at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165)
	at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217)
	at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161)
	at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)
	at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204)
	at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775)
	at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905)
	at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1783)



处理方法代码

/**
	 * 打包导出用户报表
	 * @return
	 * @throws Exception 
	 */
	@RequestMapping("qn/qycw/exportPic")
	public String exportPic(Long instId,Model model,HttpServletRequest request,HttpServletResponse response) throws Exception{
			String values[] = request.getParameterValues("checkBox");
			
			List<QnPic> picList = xtwhService.listPicByInstIdAndUserId(instId,values);
			String basePath = PropertiesUnit.getBasePath()+File.separator+"qn";
			Long target = System.currentTimeMillis();
			String temp = basePath+File.separator+target;
			File targetDir = new File(temp);
			if(!targetDir.exists())
				targetDir.mkdirs();
			for(QnPic pic:picList){
				String sourcePath = pic.getPath()+File.separator+pic.getPhytitle();
				File sourceFile = new File(sourcePath.replace("/", File.separator).replace("\\", File.separator));
				File targetFile = new File(temp+File.separator+pic.getPhytitle());
				
				if(sourceFile.exists()){
					FileUnit.copyFile(sourceFile, targetFile);
				}
			}
			String zipFile = basePath+File.separator+target+".zip";
			 ZipUnit.zipFiles(temp,zipFile );
			 
			 OutputStream os = response.getOutputStream();
			   try{
				   File zipFile_ = new File(zipFile);
				   response.reset();
				   response.setHeader("Content-Disposition", "attachment;filename=\""+target+".zip"+"\"");
				   response.setContentType("application/octet-stream;charset=utf-8");
				   os.write(FileUtils.readFileToByteArray(zipFile_));
				   os.flush();
				   zipFile_.delete();
			   }catch(Exception e){
				   e.printStackTrace();
			   }finally{
				   if(os != null)
					   os.close();
			   }
			   //删除文件
			   FileUnit.deleteDir(targetDir);
			  
			
			return "/qn/qycw/qycwPicUserList";
	}



<无标签>
举报
Ever_
发帖于3年前 1回/135阅
顶部