tomcat双击startup.bat启动时闪退
tomcat之前用的好好地沒(méi)有問(wèn)題,今天重啟一下就發(fā)現(xiàn)雙擊startup.bat一閃而過(guò),接著就沒(méi)有任何動(dòng)靜了,tomcat無(wú)法啟動(dòng)啦?
于是網(wǎng)上搜了一堆tomcat閃退的解決辦法,其中有說(shuō)是沒(méi)有讀取到環(huán)境變量,需要再tomcat的startup.bat里面加上下面兩行配置:
SET JAVA_HOME=C:\jdk1.8\jdk1.8.0_65 SET CATALINA_HOME2=C:\TomcatForJenkins但是這個(gè)我之前就已經(jīng)配置好了的啊,jdk環(huán)境都沒(méi)有問(wèn)題的,后來(lái)我想到,會(huì)不會(huì)是我后來(lái)在server.xml里面加了一個(gè)外部目錄的映射出錯(cuò)的?
<!-- 視頻,圖片資源文件夾映射--> <Context docBase="C:\resources" reloadable="true" debug="0" path="/resources"/>后來(lái)我又把我添加的這行“Context”這行用<!--? -->注釋掉了,然后再雙擊startup.bat啟動(dòng)tomcat,結(jié)果還是一樣的令人失望,于是我斷定,并不是
由于這兩行配置造成的,難道是和另外一個(gè)已啟動(dòng)的tomcat的某些配置沖突啦?(我的服務(wù)器上運(yùn)行了兩個(gè)tomcat,另一個(gè)正常啟動(dòng)能)。
經(jīng)過(guò)多番排查,并沒(méi)有發(fā)現(xiàn)什么問(wèn)題。然后繼續(xù)在網(wǎng)上尋求答案,這篇貼子里面有提到catalina的日志,突然想到,對(duì)呀,怎么不去看日志呢,腦子秀逗了?
于是發(fā)現(xiàn)日志里面有一個(gè)警告如下:
21-Oct-2017 14:56:01.060 WARNING [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 2 字節(jié)的 UTF-8 序列的字節(jié) 2 無(wú)效。at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.invalidByte(UTF8Reader.java:701)at com.sun.org.apache.xerces.internal.impl.io.UTF8Reader.read(UTF8Reader.java:372)at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.load(XMLEntityScanner.java:1790)at com.sun.org.apache.xerces.internal.impl.XMLEntityScanner.scanData(XMLEntityScanner.java:1303)at com.sun.org.apache.xerces.internal.impl.XMLScanner.scanComment(XMLScanner.java:778)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanComment(XMLDocumentFragmentScannerImpl.java:1039)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2985)at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1451)at org.apache.catalina.startup.Catalina.load(Catalina.java:551)at org.apache.catalina.startup.Catalina.start(Catalina.java:613)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:497)at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)21-Oct-2017 14:56:01.060 SEVERE [main] org.apache.catalina.startup.Catalina.start Cannot start server. Server instance is not configured.看到這,至少問(wèn)題已經(jīng)幫我們定位到是server.xml出問(wèn)題啦,繼續(xù)往下找原因就很簡(jiǎn)單啦,“2 字節(jié)的 UTF-8 序列的字節(jié) 2 無(wú)效”這又是什么鬼?難道是。。。。
對(duì),就是這樣:自己把自己給坑啦!在我加的這行配置上有一行中文的注釋:
但是這行不是用<!--? -->注釋了么?難道注釋也會(huì)被編譯?最后把這行中文注釋改為英文的,再去啟動(dòng)tomcat,竟然成功了!!!
原來(lái)xml頭定義中的encoding="utf-8",而輸入的中文卻不是utf-8編碼,而是ANSI編碼。。。
心得體會(huì):1.在出現(xiàn)問(wèn)題時(shí),先看有沒(méi)有什么地方被記錄下日志,log是最能體現(xiàn)問(wèn)題所在的,能幫我們快速定位到問(wèn)題。
2.我還是太年輕了@_@,請(qǐng)叫我小白
?
轉(zhuǎn)載于:https://www.cnblogs.com/ynxrsoft/p/7704955.html
總結(jié)
以上是生活随笔為你收集整理的tomcat双击startup.bat启动时闪退的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java并发源码之ReentrantLo
- 下一篇: ContextLoaderListene