日期:2014-05-17  浏览次数:20724 次

tomcat host appBase属性为空所导致的任意访问程序文件问题!
因项目中使用spring quartz,如果不将appBase设置为空,会导致quartz执行两次。 
使用如下配置:
<Host name="localhost"  appBase=""
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="E:\tomcat\webapps\mywebapp" reloadable="true" debug="0"></Context>
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="%h %t &quot;%r&quot; %s %b %T" resolveHosts="false"/>
但又会导致:
http://*.com/conf/web.xml直接暴露的问题!
自己在网上搜索想出个办法,直接使用默认设置,删除Context。
<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"  
               prefix="localhost_access_log." suffix=".txt" pattern="%h %t &quot;%r&quot; %s %b %T" resolveHosts="false"/>
在webapps中建ROOT文件夹将网站程序放在这个目录下。
但是tomcat配置了多个站点,使用不同的端口,这样不是要在tomcat根目录下建N多webapps/ROOT。
所以求大神想个办法。

------解决方案--------------------
直接把你那个mywebapp放到别的地方不就完了吗?比如D:\怎么会这么费劲呢?