关于tomcat的三种部署方式

第一种①我们一般都知道在TOMCAT下面部署应用一般都会部署到*\webapps目录下面,那么假如我们不把项目部署到*\webapps下面还要访问该怎么办呢?(大众方式)

第二种②你只需要在tomcat的conf\Catalina\localhost目录下面加一个配置文件,假如你的项目名称为mydemo那么配置文件的名称就为mydemo.xml而里面的内容是

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="F:/myworkspace/mydemo/WebRoot" path="/mydemo" reloadable="true">
</Context>

增加上它,这样的话,就算的你webapps下面没有mydemo这个项目,你也可以访问了。

因为当TOMCAT启动时,它就会去F:/myworkspace/mydemo/WebRoot这里面找。

第三种③还有一个配置方式是在E:\apache-tomcat-6.0.36\conf\server.xml里面加上这么一句话

<Context path="/mydemo" docBase="F:/myworkspace/mydemo"  reloadable="true"/>

结果也是去F:/myworkspace/mydemo/这里面找,而不用在webapp下面部署了。

第二种和第三种的效果相同

我感觉还是在webapp里面配置较好,因为这是大众默认的方式,移植的时候也好移植,不然可能有意向不到的事情发生

以上的东西给我带来一个非常大的麻烦:

我把我的项目部署到另一台机器上时,用传统方式部署(把项目部署到了webapps下面),出现了一个问题折磨了我好久。(而我的本地是用的第二种方式部署的)

因为我的程序中有一段代码String path=ADConnectionUtil.class.getResource("/").getPath();当我在一个机器上debug这段代码时:path=F:/myworkspace/mydemo/WebRoot,而在另一个机器上debug这段代码时path=C:\Program Files\Apache Software Foundation\Tomcat 5.0\webapps\mydemo/WebRoot.

原因很明显了,部署的方式不同导致项目的实际路径不同了,当然找到的也是不同的路径。这就可能发生一种情况:在你本地是好好的运行,怎么换了一个机器就不行了呢?

原因很简单:你部署的方式不同,读配置文件时找的位置不同,可能就读不到东西了,可能就不能运行了

http://www.iteye.com/problems/90967

猜你喜欢

转载自peryou.iteye.com/blog/1771124