2016-10-28 88 views
0

作爲標題,GlassFish 4.1服務器決定將我的頭部隨意重新部署到我的Web應用程序中,該應用程序刪除了會話中的所有屬性,但以某種方式保持會話ID不變。Glassfish 4.1不必要的重新部署

這個問題主要發生在我試圖選擇一個觸發表單提交的組合框時,它將被髮送到一個Servlet從數據庫收集必要的信息來填充必要的文本字段在同一個表單中由JSP完成),我無法解決問題的原因是因爲它發生在第三次或第四次選擇嘗試上,有時甚至根本不會發生。

服務器日誌根本沒有什麼幫助,因爲這些是唯一一個當它決定重新部署時彈出的消息。

服務器日誌:

Info: visiting unvisited references 
Info: visiting unvisited references 
Info: visiting unvisited references 
Info: WebModule[null] ServletContext.log():filter_user:Initializing filter 
Info: Loading application [IMS_Test] at [/IMS_Test] 
Info: IMS_Test was successfully deployed in 558 milliseconds. 

servlet代碼:

List<String> list = new ArrayList<String>(); 
rs = stmt.executeQuery("SELECT scp_id FROM ims_db.ims_scp_list WHERE scp_name = '" + t_scp_name + "'"); 

if (rs.next()) { 
     scp_id = rs.getString("scp_id"); 
} 

rs = stmt.executeQuery("SELECT epicor_id FROM ims_db.ims_parts_plan " 
          + "WHERE scp_id = '" + scp_id + "'"); 

while (rs.next()) { 
    list.add(rs.getString("epicor_id")); 
} 
RequestDispatcher rd = request.getRequestDispatcher("new_entryform.jsp"); 

session.setAttribute("epicor_list", list);      
session.removeAttribute("scp_name"); 
session.setAttribute("scp_name", t_scp_name); 
rd.forward(request, response); 

所以現在的問題,我做了什麼錯,最終迫使GlassFish的重新部署我的web應用程序在運行之中?請幫我:(

更新1: 絕望的我已經創建了一個SessionListener,看看有什麼錯在調試它表明,如預期所有的代碼被執行,但有時它會跳轉到。 「attributeRemoved」後的權利,這實在是沒有意義的

更新2: 不得已,分割原始形式進入其中一個使用GET方法,而主要形式使用POST方法兩個獨立的形式解決了。現在的問題。

更新3: 當我試圖將表單提交給服務器時,這些問題仍然困擾着我,但它只發生在POST方法中。嘗試升級到GlassFish 5.0(每晚構建),但問題似乎並沒有解決。任何指導/建議將不勝感激。 :(

回答

0

掙扎星期後,我終於找到了答案。顯然,隨機調動被在servlet我試圖訪問@MultipartConfig標註不當設置引起的。

它更改爲解決了以下問題:

@MultipartConfig(location="\fileDest", fileSizeThreshold=1024*1024, 
maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)