title: cannot call getWriter() after getOutputStream() error
body: <p>I am using my-faces 2.1.5 primefaces 3.2 and WebLogic Server Version: 10.3.2.0</p>
  
  <p>While I am generating files and trying to download them via p:fileDownload I get the following error message: </p>
  
  <pre><code>java.lang.IllegalStateException: strict servlet API: cannot call getWriter() after getOutputStream()
  at weblogic.servlet.internal.ServletResponseImpl.getWriter(ServletResponseImpl.java:309)
  at org.apache.myfaces.context.servlet.ServletExternalContextImpl.getResponseOutputWriter(ServletExternalContextImpl.java:185)
  at org.apache.myfaces.renderkit.ErrorPageWriter.handle(ErrorPageWriter.java:469)
  at org.apache.myfaces.context.MyFacesExceptionHandlerWrapperImpl.handle(MyFacesExceptionHandlerWrapperImpl.java:301)
  at javax.faces.context.ExceptionHandlerWrapper.handle(ExceptionHandlerWrapper.java:64)
  at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:191)
  at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
  at javax.faces.webapp.FacesServlet.service(FacesServlet.java:197)
  at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
  at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
  at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:292)
  at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
  at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
  at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
  at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3592)
  at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
  at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
  at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2202)
  at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2108)
  at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1432)
  at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201)
  at weblogic.work.ExecuteThread.run(ExecuteThread.java:173)
  </code></pre>
  
  <p>I don’t know if it’s a bug in the weblogic or perhaps it’s a bug in my code ?</p>
  
  <p>This message is the only reference that I got and I don’t have any clue how to solve this issue</p>
  
  <p>The jsf file:</p>
  
  <pre><code>&lt;p:commandButton id="genButton" value="Generate Files" disabled="#{bean.disableButton}" actionListener="#{bean.generate}" onclick="PrimeFaces.monitorDownload(showStatus, hideStatus)" ajax="false" style="width:200px" icon="ui-icon-shuffle"&gt;
          &lt;p:fileDownload value="#{bean.zipfile}"/&gt;  
          &lt;/p:commandButton&gt; 
  </code></pre>
  
  <p>The bean:</p>
  
  <pre><code>     File zip = File.createTempFile(selectedCode, "zip");  
  
              ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zip.getPath()));  
              for (File file : adapter.listFiles) {  
                  addFileToZip(file, zos);  
              }  
  
              InputStream in = new FileInputStream(zip);  
              file = new DefaultStreamedContent(in, "zip", selectedCode + ".zip");  
              adapter.listFiles.clear();  
              zos.flush();  
              zos.close(); 
  </code></pre>