PrimeFaces文件下载不起作用
|
我无法得到primeFaces的“ 0”工作。虽然我使用自定义下载bean成功下载了文件。好像issu与Primefaces文件下载ActionListener有关,但我不知道如何。有人有线索吗?谢谢。
这是我的豆子:
@ManagedBean(name=\"fileDownloadBean\")
@SessionScoped
public class FileDownloadBean implements Serializable {
private StreamedContent file;
public StreamedContent getFile() {
return file;
}
public void setFile(StreamedContent file) {
this.file = file;
}
/** Creates a new instance of FileDownloadBean */
public FileDownloadBean() {
InputStream stream = this.getClass().getResourceAsStream(\"sessionlog.csv\");
file = new DefaultStreamedContent(stream, \"application/csv\", \"sessionlog.csv\");
}
}
这是我的查看代码:
<?xml version=\'1.0\' encoding=\'UTF-8\' ?>
<!DOCTYPE composition PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<ui:composition xmlns=\"http://www.w3.org/1999/xhtml\"
xmlns:ui=\"http://java.sun.com/jsf/facelets\"
xmlns:h=\"http://java.sun.com/jsf/html\"
xmlns:p=\"http://primefaces.prime.com.tr/ui\"
xmlns:f=\"http://java.sun.com/jsf/core\"
xmlns:o=\"http://openfaces.org/\"
template=\"./../template.xhtml\">
<ui:define name=\"title\">
#{bundle.Log}
</ui:define>
<ui:define name=\"body\">
<h:form>
<p:separator style=\"height: 10px;margin-bottom: 10px;margin-top: 0px;\"/>
<p:commandButton value=\"#{bundle.Log}\" image=\"ui-icon ui-icon-link\" ajax=\"false\" disabled=\"false\">
<p:fileDownload value=\"#{fileDownloadBean.file}\" />
</p:commandButton>
</ui:composition>
我收到500错误:NullPointerException:
HTTP Status 500 -
type Exception report
message
descriptionThe server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException
root cause
java.lang.NullPointerException
note The full stack traces of the exception and its root causes are available in the GlassFish Server Open Source Edition 3.1 logs.
GlassFish Server Open Source Edition 3.1
日志:
WARNING: StandardWrapperValve[Faces Servlet]: PWC1406: Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at org.primefaces.component.filedownload.FileDownloadActionListener.processAction(FileDownloadActionListener.java:59)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
没有找到相关结果
已邀请:
4 个回复
懊毁暗
找到CSV文件的方式希望它与当前类
放在同一包装中。 如果它实际上位于程序包的根目录中,那么您应该使用:
或者,如果它实际上位于其他包装中,例如
,那么您应该使用:
或者,如果它实际上位于公共Web内容的根目录中(在所有其他Web文件中也有
文件夹所在的位置),那么您应该使用:
(顺便说一句,它也适用于WAR类而不是
)
扭湘阀柿蹄
改变
这是解决方案。
稳赣苍卯改
峨躬坎抬焚