Tomcat 部署方式

来源:岁月联盟 编辑:exp 时间:2011-12-17

 

一、静态部署

 

1 、直接将web 项目文件件拷贝到webapps 目录中

     Tomcat 的Webapps 目录是Tomcat 默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将JSP 程序打包成一个war 包放在目录下,服务器会自动解开这个war 包,并在这个目录下生成一个同名的文件夹。一个war 包就是有特性格式的jar 包,它是将一个web 程序的所有内容进行压缩得到。具体如何打包,可以使用许多开发工具的IDE 环境,如Eclipse 等。也可以用cmd 命令:jar -cvf mywar.war  myweb

     webapps 这个默认的应用目录也是可以改变。打开Tomcat 的conf 目录下的server.xml 文件,找到下面内容:

 

<Host name="localhost" appBase="webapps"

 

       unpackWARs="true" autoDeploy="true"

 

       xmlValidation="false" xmlNamespaceAware="false">

 

将appBase 修改即可。

2 、在server.xml 中指定

     在Tomcat 的配置文件中,一个Web 应用就是一个特定的Context ,可以通过在server.xml 中新建Context 里部署一个JSP 应用程序。打开server.xml 文件,在Host 标签内建一个Context ,内容如下。

 

 

在tomcat 中的conf 目录中,在server.xml 中的,<host/> 节点中添加:

<Context path ="/hello" docBase ="D:/ workspace/hello/WebRoot" debug ="0" privileged ="true">

</Context>

 

或者

 

<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

 

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 文件复制到一个临时目录里。

3 、创建一个Context 文件

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

 

<Context path="/hello" docBase="E:/workspace/hello/WebRoot" debug="0" privileged="true"></Context>

 

 

 

tomcat 自带例子如下:

 

<Context docBase="${catalina.home}/server/webapps/host-manager"

 

         privileged="true" antiResourceLocking="false" antiJARLocking="false">

 

</Context>

 

这个例子是tomcat 自带的,编辑的内容实际上和第二种方式是一样的,其中这xml 文件名字就是访问路径,这样可以隐藏应用的真实名字。

 

4 、注意:

 

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

 

二 动态部署

 

     登陆tomcat 管理控制台:http://www.2cto.com/ ,输入用户名和密码后便可管理应用并动态发布。

 

     在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 也可以。

 

摘自 vatanoc的博客