Primefaces documentViewer与会话范围的CDIBean

Primefaces documentViewer与会话范围的CDIBean,primefaces,cdi,primefaces-extensions,Primefaces,Cdi,Primefaces Extensions,我有一个CDI会话范围bean,它的字段类型为StreamedContent(应该使用Primefaces扩展documentViewer预览此内容) 在使用documentViewer重定向到页面之前,会话被声明为长时间运行 我将记录器放在getContent()方法中(记录CDIBean实例、会话和内容) getContent()方法被调用了3次,在同一个bean实例中调用了2次,会话有id,内容有值。 第三次是新bean实例,会话id为null,内容为null。。。documentView

我有一个CDI会话范围bean,它的字段类型为StreamedContent(应该使用Primefaces扩展documentViewer预览此内容)

在使用documentViewer重定向到页面之前,会话被声明为长时间运行

我将记录器放在getContent()方法中(记录CDIBean实例、会话和内容)

getContent()方法被调用了3次,在同一个bean实例中调用了2次,会话有id,内容有值。 第三次是新bean实例,会话id为null,内容为null。。。documentViewer显示“缺少PDF文件”

如果我将bean设置为会话范围,那么所有3个getContent()调用都记录在相同的bean中,相同的会话ID和PDF将在页面上预览

是否可以通过对话范围实现这一点


Primefaces扩展版本:6.2.8

您好,请按照中的要求,否则几乎无法提供帮助这应该是可能的,但正如@Kukeltje所说,我需要一个小的可复制样本来查看问题,以便调试它。您可以克隆此项目以创建所请求的MVCE。可能是omnifaces
o:form
而不是h:form已经解决了您的问题,并且这是我使用omnifaces 2.7版尝试的唯一解决方案,但运气不佳。我将制作一个简单的示例,并将其附加到这里。这里是简单的示例github.com/milos993/primefaces-test.xhtml是欢迎页面。它有一个重定向到PDFView.xhtml页面的按钮。CdiBean是会话范围的CdiBean。请注意它写入内容和CdiBean的控制台实例的getPdf()方法。如果在显示PDFView.xhtml之后阅读console,您将看到getPdf()被调用了3次(第三次调用的内容为null,并且在新的CdiBean实例中)。若作用域更改为会话,getter也会被调用3次,但调用的实例和CdiBean相同。