我們在嵌入式模式下成功地使用了tomcat 7.0.19。不過最近由於我們關注的一些問題,我們決定遷移到tomcat 7.0.32。大多數情況下,預期使用相同的代碼和更新的版本,但是由於某種原因,戰爭部署一直沒有成功。我有幾個servlet在我的tomcat上註冊。面對以下2個問題,嵌入式Tomcat下的Web應用程序部署7.0.32
有事從嵌入的Tomcat行爲從7.0.19更改爲7.0.32。爲了詳細說明這一點,讓我解釋一下7.0.19的行爲差異,我可以部署我的應用程序,當我點擊「host:port/contextpath」時,它加載了應用程序的開始頁面(即歡迎頁面,這個頁面是以UI爲中心的,不需要服務器干預,所以我的servlet都不會被調用)。然而,在7.0.32中,相同的url會導致我的servlet被調用。因此,爲了調試問題,我評論了大部分代碼,以便我有一個香草tomcat實現,只是非常基本的東西,即設置引擎名稱,默認主機,設置主機屬性,添加連接器(nio ,具有默認屬性)並部署戰爭。沒有servlet和其他東西,只是爲了檢查非常基本的東西是否工作。令我驚訝的是,當我運行這段代碼時,它仍然失敗,出現了與我的servlet中的相同問題,這是怎麼回事?現在我的代碼被評論爲沒有註冊任何servlet,它仍然從哪裏找到它?嵌入式tomcat是否存儲了一些舊的引用,這些引用在後續運行時沒有被清除?我試圖改變這個港口,但那也沒有幫助。
我在這裏碰壁,無法理解這種奇怪的行爲,如果我弄明白#2,只有這樣才能讓我在#1取得了一些進展。
由於提前,
維克拉姆
您可以發佈您的代碼的相關部分?我會說如果不查看代碼(web.xml和servlet)就不可能提供幫助。 – home
請嘗試查明引入上述行爲的實際版本。檢查7.0.20和7.0.31之間的版本,使用二進制搜索方法沒有太多的工作。 –