I have a simple servlet in my GWT application that creates a Excel
sheet (Using JXL library) and writes the outputstream to the response.

But this ends up in the following exception.

The result is same when I use Window.open/RequestBuilder and even when
I do form submit.

I am using GWT/Apps Engine plugin for Eclipse 3.5.

Appreciate any help towards this.


java.io.IOException: Closed
        at org.mortbay.jetty.AbstractGenerator$Output.write
(AbstractGenerator.java:595)
        at com.test.server.ReportServlet.generateXLS(ReportServlet.java:147)
        at com.test.server.ReportServlet.doPost(ReportServlet.java:47)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:713)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
487)


Here is my come

public class ReportServlet extends HttpServlet {

public void generateXLS(HttpServletRequest req, HttpServletResponse
response) throws ServletException, IOException {
                ByteArrayOutputStream baos = new ByteArrayOutputStream();
WritableWorkbook workbook = Workbook.createWorkbook(baos);
                        WritableSheet sheet = workbook.createSheet("Leave 
Report", 0);
                        Label idLabel = new Label(0, 0, "ID");
                        sheet.addCell(idLabel);

response.setContentType("application/vnd.ms-excel");
                        response.setHeader("Expires", "0");
                        response.setHeader("Cache-Control", "no-cache");
                        response.setHeader("Pragma", "public");
                        String fileName = "LeaveReport.xls";
                        response.setHeader("Content-Disposition","attachment; 
filename=\""
+ fileName +"\"");
                        //response.setCharacterEncoding("utf-8");
                //response.setHeader("Transfer-Encoding", "Chunked");


                        response.setContentLength(baos.size());
                        //response.setBufferSize(baos.size());
                        //response.flushBuffer();
                        ServletOutputStream out = response.getOutputStream();

                        //DataOutputStream out = new  DataOutputStream
(response.getOutputStream());
                        //baos.writeTo(out);

                        byte[] outs = baos.toByteArray();
                        for (int i = 0; i < outs.length; i++) {
                                System.out.println(i);
                                out.write(outs[i]);
                          }

                        out.flush();
                        out.close();

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to