Tomcat server.xml配置异常总结

2019-07-23  本文已影响0人  SnailFast

Tomcat架构

参考Tomcat架构和配置

Service

        如果不配置Service,Tomcat可以正常启动,日志也不抛异常。

        如果Service配置重复了,即name相同,则相同Service下面的子容器会合并。

Connector

        可以配置不同的协议,不同的端口,访问同一个应用。如果端口配重复了,则启动日志会抛异常java.net.BindException: 地址已在使用,后面的Connector配置无效。如果Service里面不配置Connector,Tomcat可以正常启动,日志也不抛异常,但是对应的service无法访问。

Engine

        属性defaultHost的值如果不在其子容器Host中,则Tomcat可以正常启动,启动日志提示警告 [main] org.apache.catalina.mapper.MapperListener.findDefaultHost Unknown default host [localhost002] for service。但是当Engine在其Host子容器中找不到与HTTP请求Host首部相匹配的Host子容器时,会使用defaultHost指定的子容器,此时会报错。

        如果不配置Engine,则Tomcat可以正常启动,日志也不抛异常,但是访问对应的Service时,页面会报500异常,后端日志会抛NullPointerException。

        如果一个Service配置了多个Engine,则Tomcat可以正常启动,日志也不抛异常,后面的Engine配置会覆盖前面的Engine配置。

Host

        如果不配置Host,Tomcat可以正常启动,日志也不抛异常,但是对应的service无法访问。

        如果Host配置重复了,则Tomcat无法启动,后台日志抛异常java.lang.IllegalArgumentException: addChild:  Child name 'localhost001' is not unique。

Context

        如果配置的Context不存在,则Tomcat无法启动,后台日志抛异常

        如果Context配置重复了,即不同Context的path属性值一样,但是docBase的值不一样,则Tomcat无法启动,后台日志抛异常java.lang.IllegalArgumentException: addChild:  Child name 'path001' is not unique。

上一篇 下一篇

猜你喜欢

热点阅读