0 Replies Latest reply on Sep 13, 2012 1:32 AM by raghu88

    Cannot forward after response has been committed...

    raghu88

      Hi to all,

      i am new to the clustering..recently i clustered jboss 6.1 with apache httpd 2.2 then onwards i am getting the following exception .It is working in jboss 4.2.2. need to solve this one.need quick help .


      i want to export some data to an excel file all when downloading the file it gives the following exception ...... after downloading the excel file i am trying to open it is saying like "the file you are trying to open .xls is in a different format than specified by the file extension"but data is not displaying in the file please any one help me how to solve this one.....

       

      his is my error log...........


      Servlet.service() for servlet action threw exception: java.lang.IllegalStateException: Cannot forward after response has been committed

      at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:417) [:6.1.0.Final]

      at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:407) [:6.1.0.Final]

      at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1063) [:1.2.7]

      at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:386) [:1.2.7]

      at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229) [:1.2.7]

      at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194) [:1.2.7]

      at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [:1.2.7]

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [:1.0.0.Final]

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.1.0.Final]

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]

      at com.zyom.security.LoginMonitorFilter.doFilter(LoginMonitorFilter.java:67) [:]

      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:274) [:6.1.0.Final]

      at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.1.0.Final]

      at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [:6.1.0.Final]

      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [:6.1.0.Final]

      at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:181) [:6.1.0.Final]

      at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.event(CatalinaContext.java:285) [:1.1.0.Final]

      at org.jboss.modcluster.catalina.CatalinaContext$RequestListenerValve.invoke(CatalinaContext.java:261) [:1.1.0.Final]

      at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:88) [:6.1.0.Final]

      at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:100) [:6.1.0.Final]

      at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:159) [:6.1.0.Final]

      at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [:6.1.0.Final]

      at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) [:6.1.0.Final]

      at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [:6.1.0.Final]

      at org.jboss.web.tomcat.service.request.ActiveRequestResponseCacheValve.invoke(ActiveRequestResponseCacheValve.java:53) [:6.1.0.Final]

      at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362) [:6.1.0.Final]

      at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [:6.1.0.Final]

      at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:654) [:6.1.0.Final]

      at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951) [:6.1.0.Final]

      at java.lang.Thread.run(Thread.java:619) [:1.6.0_13]

       

       

      this is my action class code.

      import java.io.File;

      import java.text.NumberFormat;

      import java.text.SimpleDateFormat;

      import java.util.ArrayList;

      import java.util.Calendar;

      import java.util.Date;

      import java.util.HashMap;

      import java.util.Iterator;

      import java.util.List;

       

       

      import javax.servlet.ServletContext;

      import javax.servlet.http.HttpServletRequest;

      import javax.servlet.http.HttpServletResponse;

      import javax.servlet.http.HttpSession;

       

       

      import jxl.Workbook;

      import jxl.write.Colour;

      import jxl.write.Label;

      import jxl.write.WritableCellFormat;

      import jxl.write.WritableFont;

      import jxl.write.WritableSheet;

      import jxl.write.WritableWorkbook;

       

       

      import org.apache.struts.action.ActionForm;

      import org.apache.struts.action.ActionMapping;

      import org.apache.struts.actions.DownloadAction;

      import org.apache.struts.actions.DownloadAction.ResourceStreamInfo;

      import org.apache.struts.actions.DownloadAction.StreamInfo;

       

       

      import com.zyom.reuse.util.DateHandler;

      import com.zyom.struts.form.CmForm;

      import com.zyom.struts.form.DemandFGForm;

      import com.zyom.webclient.util.DBHelper;

      import com.zyom.webclient.util.AtsHelper;

      import com.zyom.webclient.util.DemandSupplyItem;

      import com.zyom.webclient.util.MozartCostUtils;

      import com.zyom.struts.form.MapCustomerForm;

       

       

      public class RegionCustUserMapXlAction extends DownloadAction {

       

       

                protected StreamInfo getStreamInfo(ActionMapping mapping, ActionForm form,

                                    HttpServletRequest request, HttpServletResponse response)

                throws Exception {

                          Date currentDatetime = new Date(System.currentTimeMillis());

                          SimpleDateFormat formatter = new SimpleDateFormat("MM-dd-yyyy-HH-mm");

       

       

                          String myDate = formatter.format(currentDatetime);

       

       

                          String myDate1 = formatter.format(currentDatetime);

                          String fileName = "RegCustUsrMap_"+myDate+".xls";

                          String contentType = "application/vnd.ms-excel";

                          ServletContext servletCtx = this.servlet.getServletContext();

       

                          try{

       

       

                                    String path = servletCtx.getRealPath(fileName);

                                    WritableWorkbook workbook = Workbook.createWorkbook(new File(path));

                                    HttpSession session = request.getSession(true);

                                    List cust_list=new ArrayList();

                                    cust_list=(ArrayList)session.getAttribute("cust_list");

       

                                    jxl.write.Number num;

       

       

                                    Calendar stDate = Calendar.getInstance();

                                    Calendar endDate = Calendar.getInstance();

       

                                    String temp = "";

       

       

                                    SimpleDateFormat formatter1 = new SimpleDateFormat("MMM-dd,yyyy");          

       

       

                                    WritableSheet sheet = workbook.createSheet("RegCustUsrMap_"+myDate1, 1);

                                    WritableFont arial10font = new WritableFont(WritableFont.ARIAL, 10);

                                    WritableCellFormat arial10format = new WritableCellFormat (arial10font);

       

         WritableFont times16font = new WritableFont(WritableFont.TIMES, 10, WritableFont.BOLD, true);

                                    WritableCellFormat times16format = new WritableCellFormat (times16font);

                                    times16format.setAlignment(jxl.format.Alignment.CENTRE);

                                    // times16format.setBackground(Colour.BLUE);

                                    times16format.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.MEDIUM,Colour.BLACK);

       

       

       

       

       

       

                                    WritableFont datafont = new WritableFont(WritableFont.ARIAL , 10);

                                    WritableFont datafont1 = new WritableFont(WritableFont.ARIAL , 10);

                                    WritableFont datafont2 = new WritableFont(WritableFont.ARIAL , 10);

       

       

                                    datafont1.setColour(Colour.BLUE);

                                    datafont2.setColour(Colour.RED);

                                    datafont.setColour(Colour.BLACK);

                                    WritableCellFormat dataformat = new WritableCellFormat (datafont2);

                                    WritableCellFormat dataformatApproved = new WritableCellFormat (datafont);

                                    WritableCellFormat dataformatnotApproved = new WritableCellFormat (datafont1);

                                    WritableCellFormat dataformatApproved1 = new WritableCellFormat (datafont);

                                    dataformat.setAlignment(jxl.format.Alignment.LEFT);

                                    dataformatApproved.setAlignment(jxl.format.Alignment.LEFT);

                                    dataformatnotApproved.setAlignment(jxl.format.Alignment.LEFT);

                                    dataformatApproved.setBackground(jxl.format.Colour.YELLOW);

                                    dataformatApproved1.setAlignment(jxl.format.Alignment.LEFT);

                                    dataformatApproved1.setBackground(jxl.format.Colour.BRIGHT_GREEN);

                                    // times16format.setBackground(Colour.BLUE);

       

       

                                    dataformatApproved.setBorder(jxl.format.Border.ALL , jxl.format.BorderLineStyle.MEDIUM_DASHED ,Colour.BLACK);

                                    dataformatApproved1.setBorder(jxl.format.Border.ALL , jxl.format.BorderLineStyle.MEDIUM_DASHED ,Colour.BLACK);

       

                                    Label label = new Label(0, 0, "Region Customer User Map",arial10format);

                                    sheet.addCell(label);

                                    label=new Label(0,2,"As of: ",arial10format);

                                    sheet.addCell(label);

                                    label=new Label(1,2,DateHandler.getTodaysDate(),arial10format);

                                    sheet.addCell(label);

                                                  

                        int i=0;

                                    int j=3;

       

                                    j++;

                                    label = new Label(i, j, "Sales Region" ,times16format);

                                    sheet.addCell(label);

                                    i++;

                                    label = new Label(i, j, "ROLES MAPPED AT REGION LEVEL (ALL EXCEPT SALES ID)" ,times16format);

                                    sheet.addCell(label);

                                    i++;

                                    label = new Label(i, j, "Customer" ,times16format);

                                    sheet.addCell(label);

                                    i++;

                                    label = new Label(i, j, "Country" ,times16format);

                                    sheet.addCell(label);

                                    i++;

                                    label = new Label(i, j, "Sales Id" ,times16format);

                                    sheet.addCell(label);

                                    i++;

       

       

       

                                    while(endDate.after(stDate)){

                                              

                                              label = new Label(i, j, formatter1.format(new java.util.Date(stDate.getTimeInMillis())) ,times16format);

                                              sheet.addCell(label);

                                               i++;

                                              stDate.add(Calendar.DATE, 7);

                                               }   

       

                          for (int count = 0; count < cust_list.size(); count++) {

                                    MapCustomerForm mapCustomerForm=new MapCustomerForm();

                                    mapCustomerForm = (MapCustomerForm) cust_list.get(count);

       

                                                j++;

                                               

                                                          i=0;

                                                          label = new Label(i, j, mapCustomerForm.getRegion(),arial10format);

                                                        sheet.addCell(label);

                                                        i++;

                                                        label = new Label(i, j, mapCustomerForm.getUser_names(),arial10format);

                                                        sheet.addCell(label);

                                                        i++;

                                                        label = new Label(i, j,mapCustomerForm.getCustomer(),arial10format);

                                                        sheet.addCell(label);

                                                        i++;

                                                        label = new Label(i, j, mapCustomerForm.getLocation(),arial10format);

                                                        sheet.addCell(label);

                                                        i++;

                                                        label = new Label(i, j,mapCustomerForm.getSalesid(),arial10format);

                                                        sheet.addCell(label);

                                                        i++;

       

                                    }

                                                           

                          j=j+2;

       

                                              workbook.write();

                                              workbook.close();

       

       

                          }catch(Exception e){

       

       

                                    System.out.print(e);

                          }

       

       

                          response.setContentType("application/vnd.ms-excel");

                          response.setHeader("Content-disposition","attachment;fileName=" + fileName);

                          final java.io.OutputStream os = response.getOutputStream();

       

                          os.flush();

       

                          return new ResourceStreamInfo(contentType, servletCtx, fileName);

                }

      }

       

       

      i attached  my jsp  also ...