Any pointers to solve this issue would be appreciated.

If my above post found to be cumbersome, here is what I am trying to
do.

Create an Excel sheet from the server side and display/save as in the
the browser. I understand there are some restriction in sending the
stream through the GWT rpc mechanism, hence I have used a plain
Servlet.

My problem is with the ServletOutputStream. Whatever the approach I
take, it always turned out to be "Closed".

I am new to GWT and do not have much experience in file download.

Even though the server side log displays ServletOutputStream Closed
error, the browser displays "GET" is not allowed or "POST" is not
allowed (I tried both methods). Yes, I do have doGet and doPost method
in the servlet.




On Aug 21, 2:24 pm, vijjj <[email protected]> wrote:
> 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