1. 程式人生 > 其它 >解決tomcat輸入localhost:8080報404錯誤

解決tomcat輸入localhost:8080報404錯誤

執行一下我之前的專案。首先在 Apache Tomcat/bin 下找到 tomcat9w.exe 點選 start 之後發現進度條走到一半就停了,也不報錯;使用 start.bat 倒是啟動很快,無報錯資訊。

怎麼回事呢?

於是去 控制檯 cmd ,開啟服務 services.msc,找到 ApacheTomcat 服務點選啟動,這個時候報錯了:“windows不能在本地計算機啟動Apache Tomcat.有關更多資訊,查閱系統事件日誌.如果這是非Microsoft服務,請與服務廠商聯絡,並參考特定服務錯誤程式碼0”……在網上查了一圈沒有找有效的答案,因為我之前一直用,沒出現過問題。也不可能是tomcat32位和jdk64位的版本不一致導致的,暫未解決……

隨後我查看了logs日誌,確保jdk的安裝沒有問題。意外的是發現了java虛擬機器路徑裡面填寫的jdk的版本不匹配,要開啟 Tomcat 屬性欄的 Java 面板,在 Java Virtual Machine 檢視 jdk 版本是否和本機實際安裝的對應:

 

改過來之後,tomcat 可以正常啟動了。

(還有一種 tomcat 啟動超時的原因是與專案相關的資料庫服務未開啟)。

啟動成功之後,新問題出現了:

當我在瀏覽器輸入 http://localhost:8080 的時候,會報 404 錯誤,這時有人會說:是不是 conf/server.xml 埠號沒配置正確或者埠衝突?我確認了,沒有發現衝突。

最後經過我仔細檢查此檔案,發現一條比較奇怪的:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
我這裡的 appbase 的值不知什麼時候變成了 wtpwebapps,我修改為 webapps 之後,就成功打開了 localhost:8080,訪問專案也沒問題啦!(之前使用 eclipse 釋出專案,它預設部署到工作目錄下的 .metadata/.plugins /org.eclipse.wst.server.core/tmpX/wtpwebapps中,tmpX 臨時資料夾裡面存放著該專案的資訊,會不會是這個原因?)

注意:

由於我之前的專案都放在 webapps 下面,而我的配置不知什麼時候被修改成了 wtpwebapps,從而導致訪問不了localhost:8080,更不要說訪問專案路徑了,我心裡有點納悶。

做個實驗:

我又把 server.xml 的 host 配置改回:

<host appBase="wtpwebapps" ...>
把我之前做的一個專案:BoutiqueCourse 放進 tomcat 下的 wtpwebapps 中去,再重啟 tomcat 服務,然後在瀏覽器輸入localhost:8080 發現依舊是報 404,如圖:

但是在後面拼接上專案名則可以成功進入。

 

查詢原因,發現很簡單:

當我的配置為預設的為 8080 埠,並且 server.xml 中 host 配置的 appbase="webapps" 的時候,當我直接輸入 localhost:8080 回車,由於在 tomcat/webapps 下有一個 ROOT 資料夾,這個目錄存放 tomcat 的基本應用,這時會執行此預設專案。輸入http://localhost:8080 會通過hosts檔案中的解析,將 localhost 解析為 127.0.0.1,這個地址也即為 http://127.0.0.1:8080。預設如果埠後面無專案名,那麼訪問的將是 ROOT 下的專案看到的就是湯姆貓頁面。

然而我把 appbase 的值改為了 wtpwebapps,裡面只有一個專案資料夾,所以直接輸入 localhost:8080 找不到預設工程檔案,故顯示404。而之後我又在後面追加自己的專案名稱,則自然就會直接訪問該專案。

PS:這裡提一下appbase的作用:

appBase:設定 Web 應用程式組的路徑。一個虛擬主機可以由多個 Web 應用程式構成,所以這裡的 appBase 所指向的目錄應該是準備用於存放這一組 Web 應用程式的目錄,而不是具體某個 Web 應用程式的目錄本身(即使該虛擬主機只由一個 Web 應用程式組成)。appBase 屬性的值可以是相對於 Tomcat 安裝目錄的相對路徑,也可以是絕對路徑,需要注意的是該路徑必須是 Tomcat 有許可權訪問的。如果你想自己指定路徑,那麼應該在 docBase 裡面,簡單點,直接把他們複製到appBase下面就行了。
————————————————
版權宣告:本文為CSDN博主「Antrn」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_38232598/article/details/82823324