2012-06-01 48 views
0

我有這樣 JSP/IFRAME/JSP/IMG SRC =的servlet爲什麼iframe中有服務器提出請求沒有客戶端

在訪問日誌它顯示了服務器的IP地址使servlet請求不是一個結構 客戶端? Servlet地址是一個集羣地址的上下文變量,客戶端與特定的服務器進行粘連 會話,但iframe不是,如果會話數據到達其他服務器,則會話數據不在那裏。

的Tomcat 6和IE8

感謝

Server #1 log 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "POST /membership 
/GenerateSignatureServlet HTTP/1.1" 200 34 

192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership 
/printpage.jsp?type=newmem&trh=false HTTP/1.1" 200 997 

192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/js/newmember.js 
HTTP/1.1" 304 - 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/js/prototype- 
1.6.0.2.js HTTP/1.1" 304 - 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/theme 
/FBMembership.css HTTP/1.1" 304 - 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/dhtmlmodal 
/windowfiles/dhtmlwindow.css HTTP/1.1" 304 - 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership/theme 
/signature.css HTTP/1.1" 304 - 
192.**.***.*** - agt**** [01/Jun/2012:09:23:55 -0500] "GET /membership 
/signaturepageprint.jsp?trh=false HTTP/1.1" 200 51441 

Server #2 log 
172.**.***.*** - agt**** [01/Jun/2012:09:23:56 -0500] "GET /membership 


/GenerateSignatureServlet;jsessionid=91FFBB3EAA73F3833BA507B7B9B6B317? 
action=generateSigImg  HTTP/1.1" 200 39466 


Back to server #1 
192.***.***.*** - agt**** [01/Jun/2012:09:23:58 -0500] "POST /membership/MoveToFileNet?action=mainprocess&type=mainprocess HTTP/1.1" 200 9 
+0

這個問題寫得很差。 「jsp/iframe/jsp/img src」是什麼意思?您的JSP是否在其中執行任何包含? –

+0

對不起,可能看起來寫得不好,我只是試圖簡化它o它意味着我有一個jsp,裏面有一個iframe標籤,裏面有iframe標籤有一個src,src是另一個jsp,最後一個jsp有img標籤,它的src是一個寫出簽名圖像的servlet。 –

+0

我知道這聽起來不像一個好的計劃,但第一個jsp加載了ajax,然後加載iframe。我們使用iframe來幫助關注用戶,並「屏蔽」應用程序的其餘部分。作爲iframe的src的jsp是爲了我們生成的協議,我們有一個帶有js的簽名板,用戶點擊一個按鈕來激活信號板,然後簽署它。這是在一個表單裏,表單被提交給一個servlet來捕獲簽名。 –

回答

0

如果您有消費HTML,並從該標記生成PDF,然後向服務器請求的PDF可能會導致一個基於服務器的組件服務器轉向併爲自己(或羣集中的其他成員)提出回送請求以獲取HTML。

如果你不喜歡看到的是顯示「自稱」,你有我能想到的幾個選項羣集日誌消息:

  1. 當PDF生成器調用出獲取HTML提供與代理相關的HTTP頭,以便處理HTML請求的服務器記錄請求,看起來它來自其他地方(如客戶端)。請注意,操作人員可能不喜歡此選項,因爲請求確實是來自集羣內部,現在來自外部。

  2. 修改您的日誌(或連接器)設置,以便以不同的方式記錄這些環回請求。如果您使用單獨的連接器,則可以獲得localhost通信速度,並在使用HTTPS時完全避免HTTPS性能點擊。或者,您可以在其他地方記錄這些環回請求,以免它們「污染」您的日誌。

  3. 通過在不發出HTTP請求的情況下創建HTML標記來重新生成生成PDF的工作流。如果您使用的是JSP,那麼這可能是一個很高的命令,因爲您必須讓JSP編譯器/運行器在HTTP請求的上下文之外工作,這不是它的設計方式。

這些請求以這種方式記錄下來是什麼問題?

+0

克里斯托弗,我沒有任何問題的日誌,只是附加日誌顯示,我的主要問題是數據,該servlet需要生成的IMG IMG是在一個會話,當對對方服務器發出請求時,我們將得到一個空指針,因爲會話只在第一個服務器上,我們已經實現了集羣間的會話共享,但我仍然想解決根本問題。感謝您花時間研究它。 –

+1

服務器在發出請求時發送sessionid路徑信息參數(即「; jsessionid = ...」部分),因此無論您正在聯繫的羣集中的哪個成員,您都應該獲得相同的會話。你使用分佈式會話還是使用棍子會話(或者兩者兼有,我猜)?當進行回送請求時(回到羣集),您是否使用與負載均衡器相同的IP /主機名或什麼?回送請求如何確定要聯繫哪個服務器?國際海事組織,「本地主機」是最好的決定,原因有很多。 –

+0

今天早上我們把'localhost'投入生產,至今還沒有看到問題。我們使用兩個Tomcat增量管理器來共享會話,並且粘滯會話由我們的網絡交換機控制,如果我正確理解,則環回使用羣集地址。我認爲這是問題的一部分,環回不知道哪一個是因爲交換機正在通過ip進行,而客戶端沒有發出請求,因此它失去了「粘性」。你知道使用「locahost」的任何預見問題,因爲客戶端正在使用羣集地址,我們切換到另一個url或localhost? –

相關問題