Шев и множество войни: Contexts.getSessionContext() е нула в друга война

Използвам 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.


person Markos Fragkakis    schedule 26.10.2010    source източник
comment
Урокът JEE 5 казва: Можете да асоциирате обектно-оценени атрибути със сесия по име. Такива атрибути са достъпни от всеки уеб компонент, който принадлежи към същия уеб контекст и обработва заявка, която е част от същата сесия. И двете войни (Можете да мислите за войната като за уеб контекст) не споделят своите контексти.   -  person Arthur Ronald    schedule 27.10.2010


Отговори (1)


Обикновеният сървлет не получава достъп до контекстите на Seam по подразбиране: Замяна на сървлети с ресурси на Seam. Първо трябва да го интегрирате, като обвиете повикването в Seam Contexts или замяна на сервлета със Seam AbstractResource.

Използвах и двата начина преди и работят перфектно. Лично аз предпочитам AbstractResource, защото можете да се отървете от съответната конфигурация web.xml.

person kraftan    schedule 27.10.2010