를 호출 할 수 없습니다하면 FileDownload는로 getOutputStream 이후로 getWriter()() 오류
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)
는 웹 로직의 버그 또는 아마도 내 코드에 버그가 있는지 모르겠어요 : 나는 다음과 같은 오류 메시지가?
이 메시지는 내가 가진 유일한 참조이며, 내가 어떻게이 문제를
에게 JSF 파일을 해결하는 단서가없는 :
<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">
<p:fileDownload value="#{bean.zipfile}"/>
</p:commandButton>
빈 (bean) :
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();
아마 맞 겠지만 문제는 내 코드에 있지만 결함을 어떻게 분리 할 수 있을지 전혀 모르겠다. "어떤 서블릿/페이지가 출력 스트림에 쓰고 있는지 가리 킵니 다." 예제를 추가해 주시겠습니까? – angus