帅帅男孩 发表于 2017-1-29 06:35:59

关于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
页: [1]
查看完整版本: 关于tomcat的三种部署方式