自己啟動jetty所遇到的 session reset 問題

          在eclipse 當中啟動的 jetty 時,由于要根據 extension point 來找到
          相應的 servlet 定義和 mapping,因此自己取得一個 context,然后往里面
          addHandler。開始只有一個 servlet ,沒有問題,后來又有兩個plugin,其中
          也有servlet/mapping的定義,然后就總是出現 session reset 的問題。

          開始還以為是自己做的classloader 的問題,因為擔心自己做的 loader 會產生
          不好的影響。后來把日志級別調高之后,發現如果連續只訪問一個servlet, 就不會
          有 session reset 問題,如果這時候再訪問另一個 servlet,它就會賦予另外一個
          session id。再仔細看了一下增加 servlet mapping 的代碼:
          for (ExtensionBean bean : servletMappingBeans) {
            ServletHandler handler = new ServletHandler();
            handler.addServlet( bean.getProperty( "mapping"), bean.getClassName());
            context.addHandler( handler);
          }


          這樣,相當于在 context 里面增加了多個 servlet handler,每個handler有一個自己的
          session manager,由此導致訪問不同的 servlet,使用不同的session id 的問題,從而
          導致客戶端認為 session reset 了。因此,稍微修改一下就解決了這個問題:

          ServletHandler handler = new ServletHandler();
          for (ExtensionBean bean : servletMappingBeans) {
            handler.addServlet( bean.getProperty( "mapping"), bean.getClassName());
          }
          context.addHandler( handler);


          教訓:一開始就覺得這個問題不是個大問題,但是由于在后臺老是沒有異常,日志文件中也
          沒有提供足夠的信息,因此一開始花了很長時間進行調試和單步跟蹤(雖然不喜歡,但是當時
          也沒有想出其他辦法)。后來把日志級別提高了,把jetty的debug enable之后,發現訪問
          不同的servlet將造成session id 的變化,從而很快的定位到問題并且解決問題。

          也就是說,碰到問題,還是應該冷靜,盡量用日志去定位問題,而不是用debug去定位問題。

          主站: http://blogsite.3322.org/jspwiki/
          posted on 2005-11-29 15:53 SimonLei 閱讀(1521) 評論(2)  編輯  收藏
          評論
          • # re: 自己啟動jetty所遇到的 session reset 問題
            cowrie
            Posted @ 2006-05-31 14:59

            請問,如何處理JETTY 編譯JSP后,session_id變化的問題?  回復  更多評論   
          • # re: 自己啟動jetty所遇到的 session reset 問題
            SimonLei
            Posted @ 2006-05-31 15:08
            sorry, 這個問題沒碰到過。
              回復  更多評論   

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          統計

          主站蜘蛛池模板: 尉犁县| 宜良县| 石台县| 大悟县| 安丘市| 万荣县| 噶尔县| 正镶白旗| 尚义县| 姜堰市| 乐昌市| 民权县| 陆川县| 巨野县| 鲁甸县| 安仁县| 惠水县| 鹤山市| 周口市| 克什克腾旗| 凤山县| 西华县| 太康县| 开鲁县| 渭南市| 确山县| 吉木乃县| 汨罗市| 枣强县| 新津县| 河西区| 永顺县| 中西区| 三明市| 西林县| 蒲城县| 高碑店市| 托克托县| 颍上县| 商城县| 登封市|