I wanted to switch from p:media to pe:documentViewer in order to display a streamed content (.pdf) to more browsers (IE 10 doesn't display streamed content with p:media while pe:documentViewer seems to work as seen in the extension showcase).
Unfortunately, I got an exception when rendering the view:
Code: Select all
java.io.IOException: java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at org.primefaces.extensions.component.documentviewer.DocumentViewerRenderer.generateSrc(DocumentViewerRenderer.java:51)
at org.primefaces.extensions.component.documentviewer.DocumentViewerRenderer.encodeMarkup(DocumentViewerRenderer.java:41)
at org.primefaces.extensions.component.documentviewer.DocumentViewerRenderer.encodeEnd(DocumentViewerRenderer.java:27)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:83)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:66)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:65)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:83)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:66)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:65)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at org.primefaces.renderkit.CoreRenderer.renderChild(CoreRenderer.java:83)
at org.primefaces.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:66)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeMarkup(OutputPanelRenderer.java:65)
at org.primefaces.component.outputpanel.OutputPanelRenderer.encodeEnd(OutputPanelRenderer.java:41)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:924)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312)
Code: Select all
<pe:documentViewer height="600" name="#{fileProController.fileName}" value="#{fileProController.streamContent}" />
Code: Select all
InputStream is = prime.getFileMetier().readFileFromAlfresco(credentials, filePath);
streamContent = new DefaultStreamedContent(is, "application/pdf", fileName);
Thanks.