標籤:jsp java tomcat
最近因為項目中jsp發請求要訪問項目以外的檔案,直接存取寫成“c:\xxx\xxx.mp4”來訪問是沒有許可權的,不能完成現有要求。經查詢後發現可以在tomcat中配置虛擬目錄將本地的檔案設定成"http://localhost:8080/xxx.mp4",本地檔案經過這樣的虛擬映射後就可以在項目中訪問了。
上面的思路是非常正確的,但是具體實施起來卻遇到了問題,最終經反覆啟動項目和本機上的tomcat發現,eclipse項目啟動時,只是使用了本機上的部分tomcat組件,並沒有完全載入tomcat中的全部配置。最簡單的驗證方法就是,eclipse項目啟動後,在瀏覽器地址上輸入http://localhost:8080/prjName可以正常運行項目,但是在瀏覽器中直接輸入http://localhost:8080/卻無法看到tomcat的管理頁面,這個是非常詭異的。要解決在項目中能夠正常使用地址映射的問題就必須要明白,為什麼eclipse項目啟動後不能訪問http://localhost:8080/這個地址。經過搜尋後我得到如下解決方案:
用eclipse正常載入了項目之後會有server選項
滑鼠左鍵雙擊紅框,會出現一個配置畫面,
eclipse預設是選擇的第一個紅框中的選項也就是“Use workspace metadata(...)”,這個選項的意思就是,啟動項目時eclipse之調用了tomcat的核心組件,內建到eclipse中,啟動和部署時跟真正的tomcat沒有關係,因此當使用eclipse預設設定時,訪問http://localhost:8080/是無法訪問的,而訪問http://localhost:8080/xxx 自己的項目卻能正常訪問。
如果想要將啟動eclipse項目時使用的tomcat和手動啟動機器上的tomcat達到一樣的效果,就需要選擇上面第二個紅框中的選項也就是“Use Tomcat installation(...)”,選用這個選項,啟動eclipse後,就可以訪問http://localhost:8080/,並且會出現tomcat配置頁面,同時,在tomcat中加入的虛擬位址配置都會在項目中起作用。
eclipse使用內建tomcat和使用外部tomcat的設定