tomcat server.xml docbase workdir

在tomcat安装好后,只要把你的web项目copy到%TOMCAT_HOME%webapp下面就可以是使用啦!!其实还有种方法就是设定虚拟目录,即把项目的目录映射到tomcat中。这样做即可以不用重复的部署,节约时间,而且给开发人员带来方便。
方法如下: 
1,找到%TOMCAT_HOME%\conf\Catalina\localhost,Catalina\localhost目录如果存在就手动创建一个,在目录下创建一个xml文件,文件名称不能随意定义,如果你定义为test,那么访问路径就是http://localhost:8080/test/....

<Context reloadable="true" debug="0" docBase="E:\workspace\test\bin" workDir="E:\workspace\test\work" crossContext="true" >
</Context>

不需要配置path

docBase是实际路径,这里一般写一个绝对的磁盘路径,当然也可以写相 对路径,相对路径是相对于tomcat安装目录的webapps目录的,通常设置虚拟目录的目的是将tomcat的安装和项目的保存分开,所以这里建议你 使用磁盘绝对路径,并且这个磁盘路径不时在tomcat安装目录下。workDir是tomcat运行是对JSP文件做编译后的文件,这个文件最好也是分开。

docBase是项目文件夹的WebRoot这一层目录 ,如:

D:\workspace\project\releasedir\FinanceStock

workDir是指Tomcat解析Jsp转换为Java文件,并编译为class存放的文件夹,设置在项目文件夹里面,可以避免移植到其他地方首次读取jsp文件需要重新解析

tomcat 6 不需要设置debug="0"属性,否则有下面的警告:

Setting property 'debug' to '0' did not find a matching property

今天做了个测试,感觉只有当docbase位于tomcat安装目录之下才能够正常启动

2,如果在测试中出现404的错误,如果前面配置没有错,可能就是在%TOMCAT_HOME%\conf\web.xml文件中把虚拟路径显示目录给禁止啦,此时可以在web.xml文件中找到
<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> 
将listings的value改为true,然后重新启动tomcat,在输入url,测试成功!

3,如果项目开发完成,准备部署在服务器上时,记住要把第三步中web.xml文件中参数listings的值改为false,这样可以避免把项目的部署路径呈现给使用者!
具体如下: 
<init-param> 
<param-name>listings</param-name> 
<param-value>false</param-value> 
</init-param>

4、访问多台机器文件问题:

文件太多的时候必然需要跨目录或跨盘,这个时候就需要用到虚拟目录,但是Tomcat 不能直接跨Context 进行Forward。 
例如: 
用 Context 配置映射了虚拟目录 data1, 目录下有文件 123.txt 
如果要在 / 下直接 forward 到 "/data1/123.txt" 是不行的,会提示 404 找不到文件。

那么就需要灵活应用Tomcat 虚拟目录映射: 
在 D:\Tomcat\conf\Catalina\test 目录下(test为Server.xml配置文件中的域名) 增加 一个 xml 文件,(test要创建),创建之后加上这个样一个XML文件(这里就取名为data1.xml):
<Context docBase="\\IP\data1" reloadable="false" crossContext="true" /> 
并且修改 Server.xml 中的 Context 允许 crossContext="true"。 
那么就可以在工程中访问另外台机器上的文件(当然这个台机器需要共享访问的文件)。例如: 
<img src="/data1/001/002/003.png">,来显示图片。

问题又来了,就是权限问题,共享的文件不想给任何人访问的话,就需要设置共享权限,那么就需要配置tomcat的权限: 
1、在共享的机器上设置tomcat帐户和密码,并加入共享权限。 
2、然后在放tomcat的服务器上,设置相同的tomcat帐户和密码。 
3、在tomcat服务上配置登录账号和密码。

上一篇:重学《C#高级编程》(泛型与数组)


下一篇:C++ 排序函数 sort(),qsort()的使用方法