tomcat 服務器是一個免費的開放源代碼的 web 應用服務器,屬于輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試 jsp 程序的首選。但是有些小伙伴在啟動tomcat時也會遇到各種各樣的問題,比如tomcat的startup.bat啟動后出現(xiàn)亂碼,端口占用,啟動后閃退等問題,這里我們來一一進行解決
問題一:tomcat的startup.bat啟動后出現(xiàn)亂碼
找到tomcat文件下的conf目錄,修改logging.properties文件中java.util.logging.consolehandler.encoding對應的值為gbk
重啟tomcat,你看到的啟動頁面是這樣的話,說明亂碼問題已經(jīng)解決
問題二:一閃而退之端口占用
啟動tomcat出現(xiàn)一閃而退的現(xiàn)象,其實還是可以看到tomcat終端輸出的日志,這時你需要迅速截圖捕獲異常,太南了。
最正確的方法是查看日志,找到tomcat目錄下的logs目錄中catalina當天的日志,我這里找到的是c:\develop\tomcat\apache-tomcat-8.5.47\logs\catalina.2019-10-17.log
,在日志中可以看到類似這樣的輸出,address already in use: bind
說明是端口占用了
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
17-oct-2019 11:14:30.521 嚴重 [main] org.apache.catalina.core.standardservice.initinternal failed to initialize connector [connector[http/1.1-8080]] org.apache.catalina.lifecycleexception: protocol handler initialization failed at org.apache.catalina.connector.connector.initinternal(connector.java:995) at org.apache.catalina.util.lifecyclebase.init(lifecyclebase.java:136) at org.apache.catalina.core.standardservice.initinternal(standardservice.java:552) at org.apache.catalina.util.lifecyclebase.init(lifecyclebase.java:136) at org.apache.catalina.core.standardserver.initinternal(standardserver.java:848) at org.apache.catalina.util.lifecyclebase.init(lifecyclebase.java:136) at org.apache.catalina.startup.catalina.load(catalina.java:639) at org.apache.catalina.startup.catalina.load(catalina.java:662) at sun.reflect.nativemethodaccessorimpl.invoke0(native method) at sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) at sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) at java.lang.reflect.method.invoke(method.java:498) at org.apache.catalina.startup.bootstrap.load(bootstrap.java:309) at org.apache.catalina.startup.bootstrap.main(bootstrap.java:492) caused by: java.net.bindexception: address already in use: bind at sun.nio.ch.net.bind0(native method) at sun.nio.ch.net.bind(net.java:433) at sun.nio.ch.net.bind(net.java:425) at sun.nio.ch.serversocketchannelimpl.bind(serversocketchannelimpl.java:223) at sun.nio.ch.serversocketadaptor.bind(serversocketadaptor.java:74) at org.apache.tomcat.util.net.nioendpoint.bind(nioendpoint.java:219) at org.apache.tomcat.util.net.abstractendpoint.init(abstractendpoint.java:1118) at org.apache.tomcat.util.net.abstractjsseendpoint.init(abstractjsseendpoint.java:224) at org.apache.coyote.abstractprotocol.init(abstractprotocol.java:581) at org.apache.coyote.http11.abstracthttp11protocol.init(abstracthttp11protocol.java:68) at org.apache.catalina.connector.connector.initinternal(connector.java:993) ... 13 more |
在tomcat目錄找到conf目錄中的server.xml配置文件,在connector標簽中修改tomcat啟動端口
1
2
3
|
< connector port = "9080" protocol = "http/1.1" connectiontimeout = "20000" redirectport = "8443" /> |
問題三:非端口問題的一閃而退
啟動tomcat直接一閃而退,在logs目錄的日志里面找不到錯誤信息,這個時候很大可能是因為tomcat與jdk版本不對應導致的,有可能你的tomcat是tomcat9版,而你的jdk是1.7版本的,tomcat與jdk版本對應關系可以參考這篇文章tomcat與jdk版本對應關系,tomcat各版本特性
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。
原文鏈接:https://blog.csdn.net/ThinkWon/article/details/102622824