Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 JSF中资源处理程序中的会话范围?_Jsf 2_Cdi_Jboss7.x - Fatal编程技术网

Jsf 2 JSF中资源处理程序中的会话范围?

Jsf 2 JSF中资源处理程序中的会话范围?,jsf-2,cdi,jboss7.x,Jsf 2,Cdi,Jboss7.x,我有一个资源处理程序,需要访问在对话范围内工作的低级bean。我们的应用程序允许不同浏览器选项卡上的多个登录会话在同一浏览器会话中工作,方法是将登录详细信息保留在此范围内,因此数据库访问(我的资源处理程序)需要登录引用它的会话 我一直希望它能工作,甚至使用ExternalContext.encodeRedirectUrl()试图让Faces包含它所需要的任何内容 我已尝试显式地将?cid参数放在请求路径上,以便访问 /myapp/javax.faces.resource/thumbnail_39

我有一个资源处理程序,需要访问在对话范围内工作的低级bean。我们的应用程序允许不同浏览器选项卡上的多个登录会话在同一浏览器会话中工作,方法是将登录详细信息保留在此范围内,因此数据库访问(我的资源处理程序)需要登录引用它的会话

我一直希望它能工作,甚至使用ExternalContext.encodeRedirectUrl()试图让Faces包含它所需要的任何内容

我已尝试显式地将?cid参数放在请求路径上,以便访问

/myapp/javax.faces.resource/thumbnail_3963075518712822225212162218.png.xhtml?ln=com.myapp.attachment&cid=1
资源处理程序中不显示对话

进一步说,如果我尝试使用Conversation.isTransient()测试这个问题,我会得到一个

javax.enterprise.context.ContextNotActiveException: Conversation Context not active when method called on conversation Transient conversation
(但我认为对话总是要被激活的,上面的堆栈跟踪确实包括org.jboss.weld.servlet.ConversationPropagationFilter

我希望这与bug无关——解决方法是“不要使用对话!”

有更好的吗

谢谢
-Richard

Mad idea-编写一个带有还原视图事件处理程序的XHTML页面,手动呈现资源并调用Complete()在FacesContext.Ugh!但是XHTML页面确实会有对话。

看看你是否能让事情按你想要的方式运行。JSF在JSF 2.0和2.1规范中几乎与CDI不兼容。我们正在努力与JSF的领导者合作,以使其更好地用于JSF 2.2,很抱歉给你带来不便。

我已经完成了可能的工作错误报告中建议了。我找到了一种不使用对话作用域解决问题的方法。在我的例子中,我有一个ThreadLocal,如果存在,它为访问对话作用域数据的组件提供备用信息。

请看


会话管理的扩展功能非常出色

我们已经尝试过了,发现它大大降低了我们的速度。也许还有另一个问题。我们有一些相当大的JAR—为我们的遗留应用程序服务器自动生成的服务存根和DTO,共有数千个类。它们没有beans.xml。我们使用CDI扩展手动注册会话服务接口。当我们启用Seam Faces时,我们仍然发现了一个巨大的减速。(这在JBoss 7.0.1中)目前我的想法是围绕这个问题进行编码,尽量避免它。我在会话级别有一个用户和密码等价物。我可以对分区进行编码(登录的第三部分)在请求中。缓慢的问题很有趣,你介意为我们创建一个JIRA,提供尽可能多的信息吗?我必须看看我能得到什么-建立一个环境,在那里我可以重新启用它。事情目前处于搁置状态。我们已经收到了来自High(不久前收购我们的公司)的指示大幅改变方向-因此未来的问题可能是关于Javascript和JAX-RS!***警告***服务器现在可以自由使用异步技术和非阻塞IO在多个请求之间共享服务器线程。在这种情况下使用ThreadLocal会有风险。我将改为调查RequestScope希望这对我有用。