zoukankan      html  css  js  c++  java
  • tomcat双击startup.bat启动时闪退

    tomcat之前用的好好地没有问题,今天重启一下就发现双击startup.bat一闪而过,接着就没有任何动静了,tomcat无法启动啦?

    于是网上搜了一堆tomcat闪退的解决办法,其中有说是没有读取到环境变量,需要再tomcat的startup.bat里面加上下面两行配置:

    SET JAVA_HOME=C:jdk1.8jdk1.8.0_65
    SET CATALINA_HOME2=C:TomcatForJenkins

    但是这个我之前就已经配置好了的啊,jdk环境都没有问题的,后来我想到,会不会是我后来在server.xml里面加了一个外部目录的映射出错的?

    <!-- 视频,图片资源文件夹映射-->
    <Context docBase="C:
    esources"  reloadable="true"  debug="0" path="/resources"/>

    后来我又把我添加的这行“Context”这行用<!--  -->注释掉了,然后再双击startup.bat启动tomcat,结果还是一样的令人失望,于是我断定,并不是

    由于这两行配置造成的,难道是和另外一个已启动的tomcat的某些配置冲突啦?(我的服务器上运行了两个tomcat,另一个正常启动能)。

    经过多番排查,并没有发现什么问题。然后继续在网上寻求答案,这篇贴子里面有提到catalina的日志,突然想到,对呀,怎么不去看日志呢,脑子秀逗了?

    于是发现日志里面有一个警告如下:

    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 字节的 UTF-8 序列的字节 2 无效。
        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.

    看到这,至少问题已经帮我们定位到是server.xml出问题啦,继续往下找原因就很简单啦,“2 字节的 UTF-8 序列的字节 2 无效”这又是什么鬼?难道是。。。。

    对,就是这样:自己把自己给坑啦!在我加的这行配置上有一行中文的注释:

    但是这行不是用<!--  -->注释了么?难道注释也会被编译?最后把这行中文注释改为英文的,再去启动tomcat,竟然成功了!!!

    原来xml头定义中的encoding="utf-8",而输入的中文却不是utf-8编码,而是ANSI编码。。。

    心得体会:1.在出现问题时,先看有没有什么地方被记录下日志,log是最能体现问题所在的,能帮我们快速定位到问题。

         2.我还是太年轻了@_@,请叫我小白

  • 相关阅读:
    第四周JSP作业
    jsp第二次作业
    3.4软件管理与测试作业
    jsp3月3日作业
    课后listview作业
    安卓sql
    activity带数据跳转
    answers
    阿里云ESC无法使用python发送邮件的问题
    Ubuntu 更改时区
  • 原文地址:https://www.cnblogs.com/ynxrsoft/p/7704955.html
Copyright © 2011-2022 走看看