Tomcat:一则不能正常启动的排错
有时候TOMCAT启动的时候,会遇到下面的现象:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
[root@lab tomcat]# bin/catalina.sh start Using CATALINA_BASE: /tomcat Using CATALINA_HOME: /tomcat Using CATALINA_TMPDIR: /tomcat/temp Using JRE_HOME: /usr Using CLASSPATH: /tomcat/bin/bootstrap.jar:/tomcat/bin/tomcat-juli.jar Tomcat started. [root@lab tomcat]# [root@lab tomcat]# netstat -tupln | grep 8080 [root@lab tomcat]# [root@lab conf]# ps -ef | grep java root 4167 3858 0 00:47 pts/2 00:00:00 grep java [root@lab conf]# |
可以看到,事实上TOMCAT是没有起来的。
————————————————
这个现象的产生原因很多,比方说在本环境中的原因:server.xml,中语法错误,导致的不正常启动。
具体情况可以看Log日志的记录
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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
[root@lab tomcat]# tail -f logs/catalina.2014-07-18.log _______________________________________________________ 18-Jul-2014 00:43:44.129 INFO [main] org.apache.catalina.core.AprLifecycleListener.init The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 18-Jul-2014 00:43:44.264 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlValidation' to 'false' did not find a matching property. 18-Jul-2014 00:43:44.264 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlNamespaceAware' to 'false' did not find a matching property. 18-Jul-2014 00:43:44.290 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property. 18-Jul-2014 00:43:44.316 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse Fatal Error at line 140 column 9: The element type "Context" must be terminated by the matching end-tag "</Context>". org.xml.sax.SAXParseException; systemId: file:/tomcat/conf/server.xml; lineNumber: 140; columnNumber: 9; The element type "Context" must be terminated by the matching end-tag "</Context>". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1388) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1709) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1457) at org.apache.catalina.startup.Catalina.load(Catalina.java:551) at org.apache.catalina.startup.Catalina.load(Catalina.java:599) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:310) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:484) 18-Jul-2014 00:43:44.317 WARNING [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: The element type "Context" must be terminated by the matching end-tag "</Context>". 18-Jul-2014 00:43:44.323 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlValidation' to 'false' did not find a matching property. 18-Jul-2014 00:43:44.323 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlNamespaceAware' to 'false' did not find a matching property. 18-Jul-2014 00:43:44.323 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property. 18-Jul-2014 00:43:44.324 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse Fatal Error at line 140 column 9: The element type "Context" must be terminated by the matching end-tag "</Context>". org.xml.sax.SAXParseException; systemId: file:/tomcat/conf/server.xml; lineNumber: 140; columnNumber: 9; The element type "Context" must be terminated by the matching end-tag "</Context>". at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:441) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:368) at com.sun.org.apache.xerces.internal.impl.XMLScanner.reportFatalError(XMLScanner.java:1388) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1709) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2900) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:489) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1210) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:568) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1457) 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:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485) 18-Jul-2014 00:43:44.325 WARNING [main] org.apache.catalina.startup.Catalina.load Catalina.start using conf/server.xml: The element type "Context" must be terminated by the matching end-tag "</Context>". 18-Jul-2014 00:43:44.325 SEVERE [main] org.apache.catalina.startup.Catalina.start Cannot start server. Server instance is not configured. (... ...etc。) |
可以看到:
18-Jul-2014 00:43:44.316 SEVERE [main] org.apache.tomcat.util.digester.Digester.fatalError Parse Fatal Error at line 140 column 9: The element type “Context” must be terminated by the matching end-tag ““.
server.xml文件的第140行的
server.xml文件:
140行前后的记录.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
122 <Host name="localhost" appBase="webapps" 123 unpackWARs="true" autoDeploy="true" 124 xmlValidation="false" xmlNamespaceAware="false"> 125 <Context path="" docBase="/var/www/html" debug="0" > 126 127 <!-- SingleSignOn valve, share authentication between web applications 128 Documentation at: /docs/config/valve.html --> 129 <!-- 130 <Valve className="org.apache.catalina.authenticator.SingleSignOn" /> 131 --> 132 133 <!-- Access log processes all example. 134 Documentation at: /docs/config/valve.html 135 Note: The pattern used is equivalent to using pattern="common" --> 136 <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" 137 prefix="localhost_access_log" suffix=".txt" 138 pattern="%h %l %u %t "%r" %s %b" /> 139 140 </Host> 141 </Engine> 142 </Service> 143 </Server> |
真正的错误行在125:
1 |
<Context path="" docBase="/var/www/html" debug="0" > |
(确实有语法错误。)
——————————————————————————————————————————
解法:
修改Line.125的记录为:
1 |
<Context path="" docBase="/var/www/html" debug="0" /> |
重新启动TOMCAT:
Log:logs/catalina.2014-07-18.log
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
18-Jul-2014 00:55:01.717 INFO [main] org.apache.catalina.core.AprLifecycleListener.init The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib 18-Jul-2014 00:55:01.817 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlValidation' to 'false' did not find a matching property. 18-Jul-2014 00:55:01.817 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host} Setting property 'xmlNamespaceAware' to 'false' did not find a matching property. 18-Jul-2014 00:55:01.845 WARNING [main] org.apache.tomcat.util.digester.SetPropertiesRule.begin [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not find a matching property. 18-Jul-2014 00:55:02.282 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-nio-8080"] 18-Jul-2014 00:55:02.314 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 18-Jul-2014 00:55:02.325 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-nio-8009"] 18-Jul-2014 00:55:02.328 INFO [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read 18-Jul-2014 00:55:02.329 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1291 ms 18-Jul-2014 00:55:02.391 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 18-Jul-2014 00:55:02.391 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.9 18-Jul-2014 00:55:03.518 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /tomcat/webapps/docs 18-Jul-2014 00:55:03.553 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /tomcat/webapps/docs has finished in 34 ms 18-Jul-2014 00:55:03.553 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /tomcat/webapps/manager 18-Jul-2014 00:55:03.746 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /tomcat/webapps/manager has finished in 192 ms 18-Jul-2014 00:55:03.746 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /tomcat/webapps/examples 18-Jul-2014 00:55:04.715 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /tomcat/webapps/examples has finished in 969 ms 18-Jul-2014 00:55:04.715 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory /tomcat/webapps/host-manager 18-Jul-2014 00:55:04.826 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory /tomcat/webapps/host-manager has finished in 111 ms 18-Jul-2014 00:55:04.829 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"] 18-Jul-2014 00:55:04.837 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"] 18-Jul-2014 00:55:04.838 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 2509 ms |
正常启动。
操作系统状态:
1 2 3 4 5 6 7 8 9 |
[root@lab tomcat]# ps -ef | grep java root 4223 1 3 00:55 pts/2 00:00:03 /usr/bin/java -Djava.util.logging.config.file=/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/tomcat/endorsed -classpath /tomcat/bin/bootstrap.jar:/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/tomcat -Dcatalina.home=/tomcat -Djava.io.tmpdir=/tomcat/temp org.apache.catalina.startup.Bootstrap start root 4247 3858 0 00:56 pts/2 00:00:00 grep java [root@lab tomcat]# [root@lab tomcat]# netstat -tupln | grep 80 tcp 0 0 ::ffff:127.0.0.1:8005 :::* LISTEN 4223/java tcp 0 0 :::8009 :::* LISTEN 4223/java tcp 0 0 :::8080 :::* LISTEN 4223/java [root@lab tomcat]# |
终了:
TOMCAT的启动,报错不会直接反馈在命令行界面,需要进入日志详细查看。
这是需要特别注意的部分。
————————————————————————————
Ending。