tomcat配置中appBase与docBase的优先级问题

昨天在开发应用的时候,发现http://www.xxx.com/hospital/list报出404的错误,而其它路径都是对的。
断点跟踪的时候,发现/hospital/list确实没有进来,测试了下/hospital/hospital/list可以访问。
检查代码没任何问题,很是诡异。
最后怀疑到tomcat的配置上来,检查server.xml,发现也没有问题
 

 代码如下 复制代码
<Host name="localhost"  appBase="d:\htdocs\"
            unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="hospital"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log." suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>

我的配置是所有web工程都是在d:\htdocs下面,而hospital是其中的一个web工程。
==,好像不对,偏偏路径是hospital,这里的Context中docBase也是hospital,有没有什么问题呢?
仔细分析了下,唯一可能的原因大概是这样的:
appBase所在的目录有个子目录叫hospital,在tomcat进行path解析的时候,首先分析Host的appBase路径,找到了hospital,把请求交给这个路径下的Servlet来处理。
如果appBase下没有找到对应的path,则使用Context中配置的path做映射。
根据这个可能性,修改hospital的目录名称和docBase配置,问题解决!
 
由此可见:tomcat对于path的处理,Host中appBase的子目录会优先于Context中的path

时间: 2024-09-11 03:48:53

tomcat配置中appBase与docBase的优先级问题的相关文章

web应用发布,tomcat配置中出现的奇怪问题

问题描述 项目名称是xzgl,在D盘下,我在server.xml中这样配置的<Servicename="xzgl"><Connectorport="80"maxHttpHeaderSize="8192"maxThreads="150"minSpareThreads="25"maxSpareThreads="75"enableLookups="true"

优化apache/tomcat配置

apache|优化 近日不得不越那个代疱地钻研发布和发布系统管理和测试的相关问题.有充分证据表明现得绝大多数的apache/tomcat配置中,apache根本就是摆设,所有的响应负担,包括静态多媒体文件实际上是由tomcat完成,而tomcat实际上是效率相当低的,大约是apache的十分之一.因此,没有达到集成两者的目的:但在优化配置本地基本成功,打算在网上测试服务器实际试行时,却碰到了"martix现象":无可解释的不可重复的异常表现.看来,在tomcat/apache的配合上要

nginx location在配置中的优先级

location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location. = 进行普通字符精确匹配.也就是完全匹配. @ "@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location优先级说明 在nginx的location和配置中location的顺序没有太大关系.正location表达式的类型有关.

配置-Tomcat运行中不重新load ssh项目,能实现热插拔吗

问题描述 Tomcat运行中不重新load ssh项目,能实现热插拔吗 问题如题. 项目是基于SSH框架的,为了扩展方便所以,以后增加新功能的时候以插件的方式来追加. 插件也是基于SSH框架开发. 如果不重新load项目,能实现自动加载struts,spring,hibernate的实体配置等文件

NGINX location 在配置中的优先级

location表达式类型 ~ 表示执行一个正则匹配,区分大小写 ~* 表示执行一个正则匹配,不区分大小写 ^~ 表示普通字符匹配.使用前缀匹配.如果匹配成功,则不再匹配其他location. = 进行普通字符精确匹配.也就是完全匹配. @ 它定义一个命名的 location,使用在内部定向时,例如 error_page, try_files location优先级说明 在nginx的location和配置中location的顺序没有太大关系.正location表达式的类型有关.相同类型的表达式

deploy path-求教一个有关tomcat配置的问题

问题描述 求教一个有关tomcat配置的问题 tomcat配置文件server.xml中标签中webapps属性指定的值使用来实现什么的? 还有就是和Server Locations 中的Deploy Path有什么关系?求解!!! 解决方案 我找了serveer.xml并没有webapps属性,你问的是不是这个 这里面的appBase是项目部署之后存放到的路径,server Locations 服务器的路径,Deploy Path 是项目部署的路径. 解决方案二: Tomcat 5.5.7配置

如何在服务器端的Tomcat配置一个80端口?

问题描述 服务器系统:windows server 2003企业版,没装IIS(防止80端口冲突).用的是tomcat6.0.我该怎么配置一个80端口?然后通过浏览器输入IP就可以直接访问服务器项目.我自己在笔记本上的tomcat配置了一个80端口可以用,但到服务器上就不行了.求解?注:端口没被占用,本人已经查过.最好能有配置文件说明. 问题补充:shadabing 写道 解决方案 修改server.xml , 增加下面语句<Context path="" docBase=&qu

Linux下jsp环境:apache,tomcat配置

apache|js Linux下jsp开发环境,apache,tomcat服务器配置过程: (特别注明:本文内容均参考于互联网,经过个人实践而总结,若配置中遇到问题请联系我,可能写的时候漏掉了某些地方,感谢网上前辈的经验,希望更多的实践经验得以共享) 1.操作系统 RedHat Linux 9.0 2.所需软件 Apache 2.0.54 下载地址 http://apache.freelamp.com/httpd 下载该文件httpd-2.0.54.tar.gz Tomcat5.5.9 下载地址

tomcat配置好了 打不开页面怎么办

问题描述 tomcat配置好了 打不开页面怎么办 想问一下在myeclipse中怎么用tomcat打开jsp页面 解决方案 你tomcat服务器开启了吗 解决方案二: 同意楼上,你应该没有开启服务把 解决方案三: 这是怎么回事啊?请问