IWS是一個桌面應用程序,擁有自己的webBrowser組件,可在需要時調用腳本web-app。腳本位於Tomcat6中。'陷害'tomcat6丟失會話
腳本基本上是一個JSP應用程序。 (真的,它是一個引擎,它通過其圖形界面上的人爲操作構建JSP應用程序,如定義流,按鈕,內容等,但我正在討論它作爲JSP生成的「腳本」)
I需要破解腳本,以便它可以在IWS應用程序的webBrowser組件中共享空間(通過框架)。
的IWS呼叫2次start.jsp:
第一次,在一個隱蔽的方式(可能是從IWS代碼直接HTTP查詢),沒有任何特殊的參數。原始的start.jsp做2 302(所以調用訪問總共3頁)它使用jsesionId在cookie中和作爲參數結束(但不在最後302)
第二次,使用jSessionId和a一堆重要的參數。它只使用jSessionId作爲參數。至於我的小提琴手所看到的,當它正常工作作爲JSESSIONID是內部自身的
所以我想在第一時間它只是得到一個新的JSESSIONID不使用的cookie。
我現在所嘗試的解決方案是用一個新的框架頁面替換腳本開始頁面,在新框架頁面中,它在其中一個框架中加載網絡應用程序,並在另一個框架中加載另一個應用程序。根據來自第一幀的數據,它將更新第二幀。
因此,像到:
我們已經start.jsp ...(實際上它被稱爲不同的東西)
,我們結尾:
啓動.app.jsp(原來的start.jsp,剛更名)
start.jsp (是包裝了以前start.jsp新的包括HTML)
新start.jsp使用本身的網址,改變start.jsp到start.app.jsp,調用真正的腳本應用程序內的iframe。
但我一直患有像會話問題。我不是tomcat的專家。我瞭解到它使用cookie或參數來控制會話。我認爲它被配置爲使用URL sessionId,但我不確定。我已經將META-INF/settings.xml設置爲在會話中禁用cookie,但它仍然在cookie列表中顯示cookie。
我的問題是,在第二次調用start.jsp時,它顯示的比使用「舊cookie」時的某個想法忽略來自URL的jsessionId。WWG00000E上出現一些奇怪的錯誤:WWGAIL - 錯誤:功能getInteractionKVPair沒有提供ID。詳細信息:
這就好像它正在用另一個jsessionid返回一箇舊的cookie。每次出現錯誤時,「舊」jsessionid都是一樣的。
用提琴手嗅探,我看到第二個start.jsp從URL中正確的jsessionId開始,但它的cookie類似於另一個會話,並且它停止在每次重定向後添加jsession id,因爲發生這種情況。它就像它在一個完全不同的宇宙中執行一樣。這是正常的嗎?
目前我試圖無效地強制cookie jSessionId和鏈接,所以他們包括jSessionId。
請問,你有什麼想法嗎?
謝謝!
Edited2:如果我把它放在沒有框架(恢復默認的start.jsp)。在IWS只能在第一時間(交互),而在隨後的任何一個問題開始出現......