Използвам Seam 2.2.1.CR1 на Weblogic 10.3.2 и JSF 1.2.
Имам приложение за уши с 2 военни файла. Първата война е JSF / Seam приложение, втората има JSF / Seam, но има и някои страници със сервлети.
Когато задам неща в контекста на сесията в първото уеб приложение:
Contexts.getSessionContext().set("pimUser", pimUser);
Мога да го инжектирам нормално в компонентите на Seam във втората война. Ако обаче се опитам да получа изхвърления pimUser от сервлет, нямам достъп до него:
PimUser user1 = (PimUser) Contexts.getSessionContext().get("pimUser");
Contexts.getSessionContext() е нула. Забелязах, че Javadoc на
org.jboss.seam.contexts.Contexts
казва:
Provides access to the current contexts associated with the thread.
Автор(и): Гавин Кинг Томас Хойт
Това означава ли, че двата военни файла трябва да имат различни Contexts.getSessionScope()
?
Намерих начин, който ми позволява достъп до него чрез сесията по следния начин:
PimUser user2 = (PimUser) httpRequest.getSession().getAttribute("pimUser");
Последният начин обаче не изглежда правилен. Бих искал да получа достъп до контекста на сесията на Seam чрез Seam.
Открих, че е имало (?) проблеми със Seam и мулти-войн приложения (връзка), обаче , се предполага, че те са разрешени от 2.2.0.GA.