tomcat部署web应用的4种方法以及部署多个应用

Posted 星朝

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat部署web应用的4种方法以及部署多个应用相关的知识,希望对你有一定的参考价值。

 原文:

在Tomcat中有四种部署Web应用的方式,简要的概括分别是:

(1)利用Tomcat自动部署

(2)利用控制台进行部署

(3)增加自定义的Web部署文件(%Tomcat_Home%confCatalinalocalhostAppName.xml)

(4)手动修改%Tomcat_Home%confserver.xml文件来部署web应用

第一种方式:利用Tomcat自动部署

利用Tomcat自动部署方式是最简单的、最常用的方式。若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,只要将一个Web应用的WebContent级的AppName直接扔进%Tomcat_Home%webapps文件夹下,系统会把该web应用直接部署到Tomcat中。所以这里不再赘述。

第二种方式:利用控制台进行部署

若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,利用控制台进行部署的方式如下:进入tomcat的manager控制台的deploy区域——在Context path中键入"XXX"(可任意取名)——在WAR or Directory URL:键入D:workspaceWebAppAppName (表示去寻找此路径下的web应用)——点击deploy按钮。

技术分享图片

然后在%Tomcat_Home%webapps路径下将会自动出现一个名为XXX的文件夹,其内容即是D:workspaceWebAppAppName的内容,只是名字是XXX而已(这就是前面在Context path键入XXX的结果)。

以上说明利用控制台进行部署的实质仍然是利用Tomcat的自动部署。

第三种方式:增加自定义的Web部署文件

若一个web应用结构为D:workspaceWebAppAppNameWEB-INF*,这种部署方式稍微复杂一点,我们需要在%Tomcat_Home%conf路径下新建一个文件夹catalina——再在其中新建一个localhost文件夹——最后再新建一个XML文件,即增加两层目录并新增XML文件:%Tomcat_Home%confCatalinalocalhostweb应用配置文件.xml ,该文件就是部署Web应用的配置文件。例如,我们新建一个%Tomcat_Home%confCatalinalocalhostXXX.xml, 该文件的内容如下:

  1. <Contextpath="/XXX"reloadable="true"docBase="D:workspaceWebAppAppName"workDir="D:workspaceWebAppwork"/>

注意:

(1)以上代码中的workDir表示将该Web应用部署后置于的工作目录(Web应用中JSP编译成的Servlet都可在其中找到),如果使用的Eclipse作为IDE,一般可人为设置在WebApp的work目录下。

如果自定义web部署文件XXX.xml中未指明workdir,则web应用将默认部署在%Tomcat_Home%workCatalinalocalhost路径下新建的以XXX命名的文件夹下。(Web应用中JSP编译成的Servlet都可在其中找到)

(2)Context path即指定web应用的虚拟路径名。docBase指定要部署的Web应用的源路径。

其实开发者可以使用安装有Tomcat插件eclipse自动创建部署文件来部署Web应用而不必再手动建立该文件,方法如下:

1. 打开Eclipse——打开菜单栏window选择preference(首选项)——左侧选择Tomcat,如下图示:

技术分享图片

2. 可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Context files增加自定义部署文件的形式部署web应用——然后Contexts directory中指定上述文件的上级目录(即%Tomcat_Home%confCatalinalocalhost )——点击Apply或OK。

3. 完上述步骤,再选中Web项目右键点击properties(属性)——选择右侧的Tomcat ,如下图所示:

技术分享图片

4. 勾上"Is a Tomcat project"前的checkbox,将项目关联至Tomcat。

在Context name中填入XXX,即Web应用自定义部署文件名和Context path名。

在Subdirectory to set as web application root (optional)中填入要部署的Web应用的实际路径(即WEB-INF上级目录)。

注意:Eclipse会自动地将workdir设置在WorkspaceWebAppwork下。

如此便自动创建了%Tomcat_Home%confCatalinalocalhostXXX.xml文件。启动Tomcat 即可自动部署Web应用。

第四种方式:手动修改%Tomcat_Home%confserver.xml文件来部署web应用

此方法即打开%Tomcat_Home%confserver.xml文件并在其中增加以下元素:

  1. <ContextdocBase="D:workspaceWebAppAppName"path="/XXX"debug="0"reloadable="false"/>

然后启动Tomcat即可。

当然如果使用Eclipse,在Eclipse中的设置也有改变:打开菜单栏window选择preference(首选项)——左侧选择Tomcat——可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Server.xml文件来部署web应用。

技术分享图片



部署多个web应用

先说一下在本地电脑怎么实现:

想要在一个tomcat下访问两个web项目时,可以通过添加虚拟host的方式来解决。

详细步骤如下:

1、将两个项目打包放入tomcat的webapps目录下;

2、修改tomcat的server.xml文件,原来的代码如下:

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">

</Host>

添加代码后如下:

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="ROOT" docBase="/ROOT"/>
</Host>
<Host name="myspring.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/SpringMvcArchitect2"/>
</Host>

需注意两点:a、原来的host需要加上context标签,并且path由原来的空变为项目名,因为两个host的path不能同时为空,不然会访问出错,原来的项目名默认为ROOT。

b、添加新的host,将docBase里的路径设置为第二个web项目的路径,这里为/SpringMvcArchitect2,name为虚拟域名,自定义的。


3、修改机器的host文件(区别于上面的Host标签,是系统host文件),添加一个ip映射,例如添加的host的name为myspring.com,则往系统host文件中添加127.0.0.1 myspring.com


4、重启tomcat,就可以使用localhost:8080和myspring.com:8080访问两个web项目了,这里端口设置为8080,可以自己更改。


5、同理可以扩展为多个web项目,只需配置多个host即可

附:部分项目如jfinal框架默认的项目在ROOT下,所以war包不能都放webapps文件夹下,这样需另外存放路径如E: est

1、 server.xml配置文件如下

<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="ROOT" docBase="C: omcatwebappsROOT"/>
</Host>
<Host name="test.xiuyuewang.com" appBase="E: est"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
<Context path="" docBase="E: estROOT" reloadable="false" crossContext="true"/>
</Host>

2、 系统host配置文件

添加 127.0.0.1 新域名

3、重启tomcat。
































以上是关于tomcat部署web应用的4种方法以及部署多个应用的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat系列(11)——Tomcat 部署web应用的4种方法

Tomcat部署Web应用方法总结

Tomcat部署Web应用方法总结

Tomcat学习------部署Web应用方法总结

Tomcat部署Web应用方法总结

tomcat单实例多应用多实例多应用部署