Tomcat下web项目部署方式

静态部署

直接将web项目文件拷贝到webapps目录下

直接将web项目下WebRoot目录下所有内容复制到tomcat安装目录下的webapps目录,这个webapps目录是Tomcat目录的默认应用目录,webapps目录下的每个文件夹都是一个应用,当tomcat服务器启动时候,会加载webapps目录下所有应用。比如一个web项目TT,直接将TT项目的WebRoot目录下所有内容复制,然后在webapps目录下新建一个TT目录,然后将复制的内容粘贴到webapps目录下新建的TT目录下。
对于webapps这个tomcat默认的应用存放的目录是可配置的,打开tomcat安装目录下conf目录下server.xml文件找到的如下代码:

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

将appBase修改即可,改写tomcat的默认应用目录。比如改变为webs,那么启动Tomcat后立即在tomcat安装目录下新建一个叫webs的文件夹作为tomcat 应用目录,原来的部署在webapps目录下的应用都访问不到了,比如讲web应用复制到webs目录下才能访问到。

server.xml文件中配置

tomcat的配置文件中,一个web应用就是一个特定的Context,通过在server.xml文件中的Host节点标签内构建一个Context标签部署一个JSP应用程序。
比如如下这个配置例子:通过http://localhost:8080/vc/访问。

path =/vc 是浏览器访问appliction项目的虚拟路径

docBase=D:\Dev\appliction\WebRoot表示web工程WebRoot的真实目录

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

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <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" />
               <!-- 下面通过在tomcat配置文件server.xml文件配置web应用,也一样可以部署。 -->
        <Context path="/vc" docBase="D:\Dev\appliction\WebRoot" debug="0" privileged="true" reloadable="true"></Context>

      </Host>

或者其他案例

或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>

参数说明:
path是虚拟路径;

docBase 是应用程序的物理路径;

workDir 是这个应用的工作目录,存放运行时生成的与这个应用相关的文件;

debug 则是设定debug level, 0表示提供最少的信息,9表示提供最多的信息

privileged设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet

扫描二维码关注公众号,回复: 1442479 查看本文章

reloadable 如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,可以在不重起tomcat的情况下,自动装载改变后的应用程序,实现热部署

antiResourceLocking和antiJARLocking 热部署是需要配置的参数,默认false避免更新了某个webapp,有时候Tomcat并不能把旧的webapp完全删除,通常会留下WEB-INF/lib下的某个jar包,必须关闭Tomcat才能删除,这就导致自动部署失败。设置为true,Tomcat在运行对应的webapp时,会把相应的源文件和jar文件复制到一个临时目录里。

创建一个Context文件单独设置一个应用

在conf目录中,新建 Catalina\localhost目录,在该目录中新建一个xml文件,名字不可以随意取,要和path后的那个名字一致,按照下边这个path的配置,xml的名字应该就应该是vc(vc.xml),该xml文件的内容为如下:

<Context path="/vc" docBase="D:\Dev\appliction\WebRoot" debug="0" privileged="true" reloadable="true"></Context>

文件内容其实和上面第二点其实是一样的,只是单独以一个xml文件形式部署web应用,一个文件表示一个web应用,文件名是虚拟路径。

删除一个应用

删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。

动态部署

登陆tomcat管理控制台:http://localhost:8080/,输入用户名和密码后便可管理应用并动态发布。在Context Path(option):中输入/yourwebname ,这代表你的应用的访问地址。 XML Configration file URL中要指定一个xml文件,比如我们在F:\下建立一个hmcx.xml文件,内容如下:<Context reloadable="false" />其中docBase不用写了,因为在下一个文本框中填入。或者更简单点,这个文本框什么都不填,在WAR or Directory URL:中键入F:\hmcx即可,然后点击Deploy按钮,上面就可以看到了web应用程序,名字就Context Path(option):中的名字。如果部署.war文件还有更加简单的方式,下面还有个Select WAR file uploae点击浏览选择.war文件,然后点击Deploy也可以。

参考文献:
Tomcat项目部署方式

猜你喜欢

转载自blog.csdn.net/jq_ak47/article/details/70667608