gpt4 book ai didi

java - 接缝和多场 war : Contexts. getSessionContext() 在其他 war 中为空

转载 作者:行者123 更新时间:2023-12-04 06:42:57 25 4
gpt4 key购买 nike

我在 Weblogic 10.3.2 和 JSF 1.2 上使用 Seam 2.2.1.CR1。

我有一个带有 2 个 war 文件的耳朵应用程序。第一场 war 是 JSF/Seam 应用程序,第二场 war 确实有 JSF/Seam,但也有一些 Servlets 页面。

当我在第一个 Web 应用程序的 Session 上下文中设置内容时:

Contexts.getSessionContext().set("pimUser", pimUser);

我可以在第二次 war 的Seam组件中正常注入(inject)它。但是,如果我尝试从 Servlet 中获取输出的 pimUser,我将无法访问它:
PimUser user1 = (PimUser) Contexts.getSessionContext().get("pimUser");

Contexts.getSessionContext() 为空。我注意到
org.jboss.seam.contexts.Contexts

说:

Provides access to the current contexts associated with the thread.

Author(s): Gavin King Thomas Heute



这是否意味着 2 个 war 文件应该有不同的 Contexts.getSessionScope() ?

我找到了一种允许我通过 Session 访问它的方法,如下所示:
PimUser user2 = (PimUser) httpRequest.getSession().getAttribute("pimUser");

然而,后一种方式似乎并不正确。我想通过 Seam 访问 Seam session 上下文。

我发现使用 (?) 是 Seam 和多 war 应用程序 ( link) 的问题,但是,这些问题应该已在 2.2.0.GA 中得到解决。

最佳答案

默认情况下,常规 servlet 无法访问 Seam 上下文:Replacing servlets with Seam resources .您需要先通过 wrapping the call in Seam Contexts 进行集成或 replacing the servlet with a Seam AbstractResource .

我以前用过这两种方法,它们工作得很好。就个人而言,我更喜欢 AbstractResource因为可以去掉对应的web.xml配置。

关于java - 接缝和多场 war : Contexts. getSessionContext() 在其他 war 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4025908/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com