У нас есть приложение Eclipse RAP, которое немного странно себя ведет в Firefox - две разные проблемы.
Когда вы просматриваете, вы можете нажать на кнопку в одной части системы. Откроется всплывающее окно, например:
IWorkbenchBrowserSupport bs;
bs = PlatformUI.getWorkbench().getBrowserSupport();
int style = IWorkbenchBrowserSupport.AS_EXTERNAL;
IWebBrowser b = bs.createBrowser(style, getRandomID(), "Hello world", "");
b.openURL(new URL(...));
где URL - это другой сервлет в приложении. Этот сервлет находится в той же среде выполнения, но не имеет ничего общего с RAP - он берет двоичный двоичный объект из хранилища в памяти и выгружает его в выходной поток.
Проблема 1: Это приводит к прекращению сеанса HTTP в firefox и отображает страницу ошибки RAP "сеанс истек" со ссылкой для перезапуска сеанса.
Проблема 2: Теперь, когда вы нажимаете на ссылку, чтобы перезапустить сеанс, он снова показывает диалоговое окно приложения, но ошибка истечения сеанса снова отображается, как только вы что-то делаете. Это не позволяет пользователю снова использовать систему, если Firefox полностью не закрыт и не перезапущен. Быстрый просмотр FireBug показывает, что JSESSIONID, переданный Firefox, не изменяется.
Кто-нибудь видел это раньше?