溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫(xiě)此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          雪山飛鵠

          溫馨提示:您的每一次轉(zhuǎn)載,體現(xiàn)了我寫(xiě)此文的意義!!!煩請(qǐng)您在轉(zhuǎn)載時(shí)注明出處http://www.aygfsteel.com/sxyx2008/謝謝合作!!!

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            215 Posts :: 1 Stories :: 674 Comments :: 0 Trackbacks
          最近在調(diào)試xwiki的時(shí)候遇到j(luò)ava.lang.IllegalStateException異常,在google上baidu了一把
          經(jīng)過(guò)分析查看jdk文檔終于找到了解決方案,在response.sendRedirect("")方法后加return語(yǔ)句即可:
          原因是在程序中兩次調(diào)用response.sendRedirect("")方法

          j2ee5.0中的介紹:

          sendRedirect

          void sendRedirect(java.lang.String location)
          throws java.io.IOException
          Sends a temporary redirect response to the client using the specified redirect location URL. This method can accept relative URLs; the servlet container must convert the relative URL to an absolute URL before sending the response to the client. If the location is relative without a leading '/' the container interprets it as relative to the current request URI. If the location is relative with a leading '/' the container interprets it as relative to the servlet container root.

          If the response has already been committed, this method throws an IllegalStateException. After using this method, the response should be considered to be committed and should not be written to.

           

          Parameters:
          location - the redirect location URL
          Throws:
          java.io.IOException - If an input or output exception occurs
          java.lang.IllegalStateException - If the response was committed or if a partial URL is given and cannot be converted into a valid URL
          posted on 2010-01-26 10:18 雪山飛鵠 閱讀(148035) 評(píng)論(12)  編輯  收藏 所屬分類(lèi): javase

          Feedback

          # re: java.lang.IllegalStateException異常解決... 2010-10-25 16:38 King_Admins
          呵呵,不錯(cuò)!  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決... 2010-10-25 16:39 King_wangyao
          IllegalComponentStateException
          在不合理或不正確時(shí)間內(nèi)喚醒一方法時(shí)出現(xiàn)的異常信息。換句話(huà)說(shuō),即 Java 環(huán)境或 Java 應(yīng)用不滿(mǎn)足請(qǐng)求操作。  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2010-12-29 16:19 yk
          請(qǐng)不要粘來(lái)粘去好不好 都在很多地方看到了這一個(gè)說(shuō)法  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2011-01-07 16:22 李云武
          在response.sendRedirect()方法后加return語(yǔ)句即可,如下:
          response.sendRedirect("index.jsp");
          return;

          原因是:在程序中兩次調(diào)用了response.sendRedirect()方法。

          jdk5.0文檔中很清楚地介紹了出現(xiàn)IllegalStateException異常的可能情況:

          1)同一個(gè)頁(yè)面中再次調(diào)用response.sendRedirect()方法。
          2)提交的URL錯(cuò)誤,即不是個(gè)有效的URL。

            回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2011-03-29 13:12 wysjian
          public ModelAndView downloadPrint(HttpServletRequest request,HttpServletResponse response, DatabaseForm databaseForm) {
          HashMap<String, String> model = new HashMap<String, String>();
          try {
          //String doc_nme = (String) request.getParameter("doc_nme");
          //String bfr_nme = (String) request.getParameter("bfr_nme");
          response.setContentType("text/html");
          javax.servlet.ServletOutputStream out = response.getOutputStream();
          // 取得文件在服務(wù)器上的文件路徑
          String filePatch = getServletContext().getRealPath("");//獲得編譯后的文件路徑
          String allPathStr = filePatch + "//applets//jre-1_5_0_18-windows-i586-p.rar" ;
          File file = new File(allPathStr);
          // 讀取文件流
          FileInputStream fileInputStream = new FileInputStream(file);
          String bfr_nme = "jre-1_5_0_18-windows-i586-p.rar";//this.getDatabaseMgr().queryBfrUserDocNm(doc_nme);
          // 下載文件
          // 設(shè)置響應(yīng)頭和下載保存的文件名
          response.setContentType("application/x-msdownload");
          response.setHeader("Content-Disposition", "attachment; filename="+ new String(bfr_nme.getBytes("gb2312"),"iso8859-1") + "");
          if (fileInputStream != null) {
          int filelen = fileInputStream.available();
          // 文件太大時(shí)內(nèi)存不能一次讀出,要循環(huán)
          byte a[] = new byte[filelen];
          fileInputStream.read(a);
          out.write(a);
          }
          fileInputStream.close();
          out.close();
          return null;
          //return new ModelAndView("downLoadView", model);
          } catch (Exception e) {
          e.printStackTrace();
          model.put("errorInfo", e.getMessage());
          return new ModelAndView("errorView", model);
          }
          }
            回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決[未登錄](méi) 2012-06-05 16:04 lyy
          但是我整個(gè)文檔里就沒(méi)有那個(gè)response.sendRedirect()語(yǔ)句啊,也有這個(gè)異常啊,大俠給看看:
          <%
          String filename = "D:/Program Files/Genuitec/workspaces/zoology/WebRoot/jianfang.txt";
          //if (request.getAttribute("url") != null) {
          // filename = (String)request.getAttribute("url");
          //}

          System.out.print("filename "+filename);
          response.setContentType("application/msword");
          response.setHeader("Content-disposition", "inline; filename="
          + filename);
          BufferedInputStream bis = null;
          BufferedOutputStream bos = null;
          try {
          bis = new BufferedInputStream(new FileInputStream(new File(filename)));
          //getServletContext().getRealPath("" + filename)));
          bos = new BufferedOutputStream(response.getOutputStream());
          byte[] buff = new byte[2048];
          char[] c =new char[2048];
          int bytesRead;
          while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
          bos.write(buff, 0, bytesRead);
          }

          } catch (final IOException e) {
          System.out.println("出現(xiàn)IOException." + e);
          } finally {
          if (bis != null)
          bis.close();
          if (bos != null)
          bos.close();
          }
          %>  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2012-06-07 11:26 puliang
          我只是增加一個(gè)文件,為什么也報(bào)這個(gè)錯(cuò)誤呢  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決[未登錄](méi) 2012-06-30 09:39 lucky
          現(xiàn)在關(guān)鍵的是,我的項(xiàng)目使用struts2寫(xiě)的,response.sendRedirect()都是在struts2框架里面定義了的,我怎么處理呢?  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決[未登錄](méi) 2012-12-01 18:16 張三
          java.lang.IllegalStateException
          at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
          at org.apache.taglibs.standard.tag.common.core.RedirectSupport.doEndTag(RedirectSupport.java:119)
          at org.apache.jsp.MovieShopping_jsp._jspx_meth_c_005fredirect_005f0(MovieShopping_jsp.java:686)
          at org.apache.jsp.MovieShopping_jsp._jspx_meth_c_005fif_005f2(MovieShopping_jsp.java:654)
          at org.apache.jsp.MovieShopping_jsp._jspService(MovieShopping_jsp.java:369)
          at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
          at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
          at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
          at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
          at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
          at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
          at org.apache.struts.chain.commands.servlet.PerformForward.handleAsForward(PerformForward.java:113)
          at org.apache.struts.chain.commands.servlet.PerformForward.perform(PerformForward.java:96)
          at org.apache.struts.chain.commands.AbstractPerformForward.execute(AbstractPerformForward.java:54)
          at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)
          at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:304)
          at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:190)
          at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)
          at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)
          at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
          at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
          at java.lang.Thread.run(Thread.java:619)  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2013-01-21 22:01 sundabing

          java.lang.IllegalStateException
          at org.apache.catalina.connector.ResponseFacade.sendError(ResponseFacade.java:407)
          at com.dyjy.mybook.web.action.BookAction.service(BookAction.java:65)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
          at java.lang.Thread.run(Thread.java:619)
          2013-1-21 22:00:34 org.apache.catalina.core.StandardWrapperValve invoke
          嚴(yán)重: Servlet.service() for servlet BookAction threw exception
          java.lang.IllegalStateException
          at org.apache.catalina.connector.ResponseFacade.sendRedirect(ResponseFacade.java:435)
          at com.dyjy.mybook.web.action.BookAction.service(BookAction.java:74)
          at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
          at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
          at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
          at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
          at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
          at java.lang.Thread.run(Thread.java:619)
            回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2013-06-06 09:13 33
          @yk
          程序員通病—復(fù)制粘貼  回復(fù)  更多評(píng)論
            

          # re: java.lang.IllegalStateException異常解決 2015-08-15 09:48 xiaohei
          @lucky 你的問(wèn)題解決了嗎?怎么解決的?我也遇到相同的問(wèn)題了。sturts2的
            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 安平县| 桐梓县| 大丰市| 华坪县| 腾冲县| 分宜县| 吉隆县| 高阳县| 新巴尔虎右旗| 通山县| 双牌县| 德州市| 冷水江市| 衡阳县| 永泰县| 灵石县| 若羌县| 宕昌县| 晴隆县| 罗源县| 达拉特旗| 宁武县| 丰台区| 铜川市| 丰城市| 吴桥县| 乌恰县| 栾川县| 新民市| 雅安市| 枣强县| 巴南区| 连南| 新蔡县| 古浪县| 乐清市| 涟水县| 文登市| 衡阳县| 汝州市| 东阳市|