問題雜談:Idea正常啓動Tomcat後,無法訪問Tomcat的主頁及其他資源--解決方法

一、引

我們在使用Idea開發Web項目的時候,需要配置服務器,相信使用過Idea的夥伴都經歷過配置服務器的過程。但是,這篇博文並不是教你如何在Idea上配置服務器的,而是一個在Idea完全正常的運行項目時,卻會碰到的一個意想不到的問題,雖然這個問題並不是每個人都會遇到,但相信遇到了的人,都有過一頭霧水的心情。

二、問題

我就不多說廢話了,直接說問題吧。我們使用Idea開發項目,一般配置的是Tomcat服務器,當我們正常啓動項目的時候,我們可以通過URL在瀏覽器訪問到項目,沒錯一切正常。但恰恰不巧的是,如果這個時候我想訪問Tomcat原本已有的資源,或者項目中有一個功能就是將某個文件(圖片等資源)上傳至Tomcat的根目錄時,發現無法訪問到資源,連Tomcat的主頁都訪問不到。這個時候是不是開始懷疑人生了?是不是覺得自己以前用了那麼久的Tomcat是沒有配置好的?是不是有種想要重配Tomcat的衝動?哈哈,不要衝動,其實這是一個和Idea運行機制有關的問題,只要稍加配置就可以解決了。

三、原因及解決方法

我們在運行項目的時候不是啓動了Tomcat麼?爲什麼會訪問不到Tomcat的資源呢?其實,Idea在啓動項目的時候,在另一個地方爲Tomcat創建了一個目錄,運行着虛擬Tomcat,簡單來理解,就是克隆了一個虛擬的Tomcat,而你的項目就在這個虛擬的服務器上運行,所以當你想要去訪問正版的服務器的時候,當然訪問不到它目錄下的資源了。

那麼這個“虛擬服務器”在哪呢?看圖

第二張圖中的“Output directory”就是項目的運行所在路徑了,只有在虛擬的服務器運行的路徑下的資源才能被訪問,那我們如果想要同時能夠訪問正版的Tomcat下的資源怎麼辦呢?很簡單,只要將正版Tomcat下 資源加載到運行路徑中即可,操作看圖。

四、總結

可能有人會問,我啓動項目的時候爲什麼要訪問Tomcat原本已有的資源呢?我不是隻要顧及運行項目下的資源就行了麼?非也非也,思考一下,當正在運行的項目需要上傳文件的時候,我這個文件上傳的位置應該在哪?文件上傳至Tomcat的根目錄或者上傳至項目的目錄下均可,但是一般開發習慣來說,在項目開發階段,項目並沒有打包成war包,這個時候應該將項目上傳至項目目錄下。當項目完成並打包成war包時,就應該將文件上傳至Tomcat根目錄下。兩者的區別在於,開發階段是由Idea啓動項目,打包後,是直接啓動Tomcat服務器訪問項目的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章