2010-08-19 3 views
0

У меня есть приложение GWT, которое я хотел бы запустить из макета Joomla. Похоже, что эта концепция работает нормально, и приложение загружается правильно. Joomla использует iFrame для достижения этого и просто отправляет URL-адрес, который начнет использовать приложение GWT.HttpSession изменяется между вызовами Servlet и GWT RPC Servlet (RemoteServiceServlet)

Проблема, с которой я сталкиваюсь, заключается в том, что мне требуется определенная информация из Joomla, которую я передаю в качестве параметров в URL. Поскольку приложение GWT запускается с HTML-страницы, не предоставляя мне никакого доступа к этим параметрам, я вместо этого увольняю запрос на сервлет, идея состоит в том, что я могу захватить эти параметры, сохранить его в сеансе и затем обслуживать HTML-страница приложений GWT.

Концепция отлично работает. Я хватаю параметры, поместите их в карту, что карта переходит в основную фасоль и хранить фасоль в качестве атрибута сеанса с кодом:

request.getSession().setAttribute("sessionBean", sessionBean); 

сервлет затем служат из страницы GWT HTML, который в включите загрузку приложения, и первое, что он делает, - это сбой вызова RPC. Проблема, которую я имею в обращении с моим RemoteServiceServlet этого вызова, я пытаюсь извлечь мой SessionBean со следующим кодом:

SessionBean sessionBean = (SessionBean) this.getThreadLocalRequest().getSession().getAttribute("sessionBean"); 

Я получаю нулевой, и приглядевшись понимаю, что это, по сути, создал новую сессию. Я знаю это, сравнивая идентификаторы двух сеансов. Любые последующие дальнейшие вызовы RPC имеют доступ к последнему сеансу, но тот, который я сохранил в своем SessionBean, отсутствует!

Это все один развернутый файл войны, файлы cookie включены, и он действует таким образом как в режиме разработки, так и в режиме производства.

Я полагаю, что я, вероятно, неправильно понимаю, как обрабатываются сеансы! Любые идеи относительно того, почему вызов GWT RPC создает новый сеанс? Или, может быть, если я полностью ошибаюсь, как получить эти необходимые параметры в сеансе?

Любая помощь или идеи будут очень благодарны!

Заранее благодарен!

Xandel

ответ

1

В GWT вы можете получить URL-параметры по:

Window.Location.getQueryString() 
+0

Ха! Так просто! :) Большое спасибо! Что касается новой ситуации сессии, хотя мне не нужно беспокоиться об этом сейчас, возможно, у вас есть идеи, почему она не работает? Еще раз спасибо! – Xandel

+0

Из того, что я вижу, не должно возникнуть никаких проблем с вашим sesssion, возможно, он настроен неправильно. У Firefox есть хороший инструмент для просмотра файлов cookie с именем «Веб-разработчик», там вы можете воспользоваться, если у вас есть ваш cookie-сеанс. – pathed

Смежные вопросы