現象:
tomcat安裝好了,准備部署Web項目了,啟動tomcat,發現沒有反應。


雖然顯示了Tomcat started。但是這個 started不等同於 success,當我們打開瀏覽器訪問8080端口的時候,卻發現我們的tomcat並沒有被啟動。
網上大多的教程都是教我們去查端口占用,或者是配置jdk環境。但其實應該從原因上進行分析,這樣才能有效的推導出結果
(我最開始的錯誤就是有一個有錯誤的war包,導致tomcat啟動不起來,這種如果按網上的教程是發現不出來的)
tomcat的logs目錄下,存放着它所有的日志,在tomcat啟動時的日志,是存儲在catalina.***.log中的,***代表日期,我們可以找到當前日期的catalina.***.log,通過日志信息來定位問題
端口占用:


這個時候我們可以先查出來占用端口的線程:
lsof -nP -i:8080


然后再殺掉該線程即可:
kill -9 pid
文件拼寫錯誤:


通過錯誤信息我們可以看出,這個問題產生的原因是文件第二行存在拼寫錯誤,我們打開文件,發現文件的第一行有一個空格,刪掉首行空格即可。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0" metadata-complete="true"> <description> Servlet Example. </description> <display-name> MyServlet Example </display-name> <request-character-encoding>UTF-8</request-character-encoding> <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>myServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> </web-app>