문제

우리는 Firefox에서 약간 이상하게 행동하는 Eclipse 랩 응용 프로그램을 가지고 있습니다.

주위를 탐색하면 시스템의 한 부분에서 버튼을 클릭 할 수 있습니다. 이것은 팝업 창을 열어줍니다.

IWorkbenchBrowserSupport bs;
bs = PlatformUI.getWorkbench().getBrowserSupport();
int style = IWorkbenchBrowserSupport.AS_EXTERNAL;
IWebBrowser b = bs.createBrowser(style, getRandomID(), "Hello world", "");
b.openURL(new URL(...));

여기서 URL은 응용 프로그램의 다른 서블릿입니다. 이 서블릿은 동일한 런타임에 있지만 랩과 관련이 없습니다. 메모리 내 스토리지에서 이진 블로브를 가져 와서 출력 스트림에 덤프합니다.

문제 1 : : 이로 인해 HTTP 세션이 Firefox에서 죽게되며 세션을 다시 시작할 수있는 링크가있는 "세션 만료 된"랩 오류 페이지를 보여줍니다.

문제 2 : : 문제 2 : : 이제 링크를 클릭하여 세션을 다시 시작하면 응용 프로그램의 대화 상자가 다시 표시되지만 세션 만료 된 오류가 다시 표시되는 순간에 다시 표시됩니다. 이렇게하면 Firefox가 완전히 닫히고 다시 시작되지 않는 한 사용자가 시스템을 다시 사용하지 못하게됩니다. Firebug를 빠르게 엿보면 Firefox가 통과 한 jsessionid가 변하지 않는 것으로 나타났습니다.

전에 본 사람이 있습니까?

도움이 되었습니까?

해결책 2

RAP 응용 프로그램이 현재 HTTP 서블릿 컨텍스트 내부에서 애플리케이션 자체의 서블릿을 가리키는 팝업 창을 열면 세션이 사망 한 것으로 나타났습니다. 해당 서블릿을위한 더미 HTTP 컨텍스트를 작성하여 고정되었습니다.

다른 팁

스트림의 덤핑은 출력에 얼마나 걸립니까? 시간 초과를 일으킬 수 있습니까? 랩은 JavaScript 호출을 사용하므로 일반 시간 초과 시간보다 훨씬 짧을 수 있습니다.

문제 2 : Firefox는 많은 것을 캐시합니다. JavaScript 실행이 중단되면 그러한 문제가 발생할 수 있습니다.

이러한 문제가 다른 브라우저에 존재합니까? 내부 브라우저 (또는 다른 렌더링 엔진이있는 다른 브라우저)를 확인하는 것이 좋습니다.

동일한 응용 프로그램 내에서 컨텐츠를 제공 해야하는 경우 대신 서비스 핸들러를 사용해야합니다. 이 FAQ를 참조하십시오 :http://wiki.eclipse.org/rap/faq#how_to_provide_download_link.3f

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top