Вопрос

Весна: 2.5.6.sec01

DWR: 2.0.5

Я хотел бы использовать сеанс -орезок из DWR. Это работает нормально, когда я настраиваю бобы как синглтон. Я прочитал этот репетитор: (http://directwebremoting.org/dwr/server/integration/spring.html) и изменил мой ApplicationContext.xml, но это все еще где -то неправильно.

My ApplicationContext.xml:

http://pastebin.com/m8d57f18

Это хорошо, но когда я использую функцию Ajax, я получаю это исключение:

11: 31: 09,593 Информация [defaultremoter] Exec: dbtestajaxfunc.testjndi () 11: 31: 09,609 Warn [defaultremoter] Выполнение метода: org.springframework.beans.factory.beancreationexcept Область «сеанс» не активен для текущего потока; Рассмотрите возможность определения прокси -сервера для этого боба, если вы намереваетесь ссылаться на него из Синглтона; Вложенное исключение-java.lang.illegalstateException: Запрос, связанный с потоком, не найдено: вы ссылаетесь на атрибуты запроса за пределами фактического веб-запроса или обрабатывают запрос за пределами первоначально принимающего потока? Если вы фактически работаете в веб -запросе и все еще получаете это сообщение, ваш код, вероятно, работает за пределами DispatcherServlet/DispatcherPortlet: в данном случае используйте requestContextListener или RequestContextFilter, чтобы выявить текущий запрос.

Кажется, что прокси AOP не был создан, но я не знаю почему.

Libs in the Classpath:

  • AspectJrt.Jar
  • AspectJweaver.jar
  • cglib-nodep-2.2.jar
  • dwr.jar
  • Весна. Яр
  • Spring-Aop.jar
  • Spring-DWR-2.0.xsd
  • Spring-Web.jar
  • Spring-Webmvc.jar

Есть идеи? (Спасибо!)

Это было полезно?

Решение

Для того, чтобы бобы с сеансом или запросом работали весной, что-то должно связать текущий запрос и сеанс с текущим потоком. Обычно это делается DispatcherServlet, но если вы этого не используете, вам нужна альтернатива.

Альтернатива в этом случае RequestContextListener или же RequestContextFilter, любой из которых вы можете подключить к своему web.xml, и обе ОС, которые позволят вам использовать бобы с запросом и сеансом. Просто убедитесь, что вы настраиваете их в web.xml Так что просьбы DWR проходят через них.

Другие советы

Проверьте, доступен ли к сеансу Bean Global или Singleton. В этом случае вам нужно снизить объем вызова бобов.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top