tomcat8:虚拟目录配置及404bug

原创 2016年10月22日 14:43:14

目标:访问ID+路径,直接获取静态资源,如图片等。
常规方法(方法一):
%tomcat%/conf/server.xml文件,标签下添加

<!-- 增加虚拟路径,供访问本地图片-->
<Context path="/img" docBase="D:\test" debug="0" reloadable="true" crosscontext="true"></Context>
<Context path="/360" docBase="D:/360Downloads" ></Context>
<Context path="/img" docBase="D:\test" reloadable="true"></Context>

据网上资料的值,引发问题的情况有几个:

  1. path与docBase路径名称不能一致;
  2. 实际地址docBase注意\/区别(据我测试好像没区别);
  3. web.xml设置listings值为true,目的是显示虚拟路径。正式项目运作必须关掉。
    <servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

设置虚拟根目录

标签下添加

<Context path="" docBase="D:\test"></Context>

PS:直接访问根路径无效,无法查看到列表,必须根目录下直接访问具体资源名。

本人解决此次问题方案,方法二

路径:%tomcat%/conf/Catalina/localhost/
方案:此路径下创建xml文件,文件名为你想访问的Path路径(即path=”“的值),xml文件内写入实际存储地址。
example:

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:/360Downloads" reloadable="true"></Context>

test.xml
设置完成后重启tomcat,访问http://localhost/test
即可看到该文件目录列表。

思考

此次问题难点在于tomcat始终读取不到我设置的path路径,感觉十分蹊跷。
我猜测可能是由于不同版本的tomcat设置此处的位置不同,而百度谷歌拿到的资源大部分是2年前tomcat5 6。
由此观之,有必要看看官方文档的说明了。

总结

经过实际操作,发现eclipse下配置的tomcat中,需要给Server配置方法一,即可访问静态路径; 如果直接在tomcat文件夹内修改配置文件,则必须重启并清理workspace缓存。
eclipse修改tomcat配置
但是如果是实际发布的tomcat服务器,外部访问,则必须用方法二,此刻方法一是无效的。。。
至于为啥,我也不知道,今天这个tomcat快把老子整哭了。。马拉个巴巴的

PS:后来找到一篇总结比较好的。
这里写图片描述

参考资料

http://blog.csdn.net/lawmansoft/article/details/7394331
http://www.cnblogs.com/hnlyh/articles/5544920.html

版权声明:本文为博主原创文章,未经博主允许不得转载。

tomcat 404 问题及解决方法

昨天晚上用tomcat 实验一个小程序,没想到的是一直提示404错误。我已经确认目录下有我的html文件,但仍然是404。今天就总结一下tomcat 404 的几种常见问题及解决方法。...
  • psp0001060
  • psp0001060
  • 2016年07月11日 11:16
  • 21439

tomcat启动成功但是访问方面都是404

1、开发环境与错误情况 开发环境是jdk1.7+maven+git+spring MVC+spring+mybatis+mysql。 楼主做小例子的时候发现,tomcat成功启动,但是访问主页,页...
  • shasiqq
  • shasiqq
  • 2016年05月03日 11:22
  • 108641

同一个tomcat下面部署了两个项目,有一个访问不了404,web项目配置webAppRootKey

场景:刚接手了同事创建的项目,准备部署到服务器上(此tomcat下已经有了一个项目),部署好之后发现原有项目可以正常访问,但是新项目报404,怎么也访问不了。 问题排查:原来是同事拿之前的项目直接拷...
  • u010246789
  • u010246789
  • 2016年05月20日 11:12
  • 8174

Tomcat8.0 虚拟目录配置案例

第一步当然是创建一个文件夹作为虚拟目录,然后在虚拟目录下加入一个项目文件夹.我所创建的虚拟目录的路径为D:\Software_address\TomCat\TomCatVirtual,我在TomCat...
  • jintaohahahaha
  • jintaohahahaha
  • 2015年12月07日 20:16
  • 5155

mac tomcat8 虚拟目录配置

属性说明: crossContext  如果想在应用内调用ServletContext.getContext()来返回在该虚拟主机上运行的其他web application的request di...
  • u012629497
  • u012629497
  • 2017年05月19日 23:12
  • 680

Tomcat常见配置-虚拟目录

一、域名对应的虚拟目录(可作项目的默认根目录) Host name=www.cba.com appBase=="D:\cba"unpackWARs="true" autoDeploy="true" ...
  • xiaohan2826
  • xiaohan2826
  • 2014年04月16日 15:27
  • 590

tomcat8目录结构

Tomcat8.0的目录结构: /bin:存放windows或Linux平台上启动和关闭Tomcat的脚本文件,startup.bat,shutdown.bat,tomcat-juli.jar /co...
  • begin27
  • begin27
  • 2016年03月16日 10:48
  • 2050

Tomcat8.0 项目部署

本文主要介绍怎么在tomcat8.0下面部署spring mvc项目。 在部署项目之前需要把我们的项目打包一下(war),实际上在点击编辑器运行的时候就一句生成了这个war包,不要额外工作,大概的...
  • u012835032
  • u012835032
  • 2016年05月04日 15:00
  • 6521

解决Tomcat创建虚拟目录遇到的所有问题。

1.server.xml     打开Tomcat目录下的/conf/server.xml文件,在Host之前加入下面蓝色部分的内容。 ...
  • yinyankun1600
  • yinyankun1600
  • 2017年04月21日 15:26
  • 730

Tomcat 8(一)Tomcat常用配置

操作系统:win8 Jdk版本:1.7.0_51 Jdk目录:C:\Program Files\Java\jdk1.7.0_51 Tomcat版本:8.0.3  Tomcat目录:D:\Program...
  • flyliuweisky547
  • flyliuweisky547
  • 2014年03月02日 12:04
  • 22449
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:tomcat8:虚拟目录配置及404bug
举报原因:
原因补充:

(最多只允许输入30个字)