在Jersey Servlet和JSF Backing Bean之间共享一个范围

时间:2012-06-14 08:52:57

标签: jsf jersey java-ee-6 cdi

我只是想问一下是否有人做过这样的事情。基本上,它就像paypal快速结账功能:

1。)您在商店中选择结帐项目。

2。)您将被重定向到登录页面,在我的情况下,我将其实现为Jersey Rest Servlet。在post上,将数据存储在会话EJB支持bean中,并调用Response.seeOther()以重定向到登录页面(JSF)。

3.如果登录成功,则应保留已发布的交易数据。

但看起来,虽然我可以调用会话支持bean,但是将发布的数据存储在该bean内的变量中。当我单击登录(登录确定)并重新访问同一个bean时,我存储已发布数据的变量将变为空。

在ejb中,Jersey Rest Servlet和Session范围支持bean之间是否共享会话范围?

还有其他好办法吗?

谢谢,
czetsuya

2 个答案:

答案 0 :(得分:1)

会话范围不适用于Web服务调用。您需要使用应用程序范围,或创建自己的范围。

答案 1 :(得分:0)

在尝试解决这个问题之后,我得出结论,不可能将jsf会话分享到jersey或servlet会话,因为它们是以不同的方式实现的。

我的问题解决方案(不回答问题)是使用HttpServlet,并将事务存储为会话属性:

HttpSession session = request.getSession(true);
session.setAttribute("POSTED_ITEMS", postedItems);

所以我将能够访问下一页。

*我希望有一种方法可以发布到javaee6 bean支持的jsf页面,这样可以简化生活: - 。