tomcat部署项目的3种方式

来源:互联网 发布:2017装修手机淘宝主页 编辑:程序博客网 时间:2024/06/07 03:06

    今天“DF预生产”环境上,有几个项目是直接部署在tomcat下的根目录下的,一个tomcat一个项目。

是如下实现的:

   

于是想对涉及到的tomcat的几种部署方式,做一下梳理

1、直接将web项目文件件拷贝到webapps目录中 
Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。所以可以将程序打包成一个 war包放在目录下,服务器会自动解开这个war包,并在这个目录下生成一个同名的文件夹。一个war包就是有特性格式的jar包,它是将一个web程序的所有内容进行压缩得到。

打包方式可以使用许多开发工具的IDE环境,如Eclipse等。也可以用命令:jar -cvf mywar.war myweb

之后直接就可以用项目报名访问:http://localhost:8080/myweb

实例截图:


2、在server.xml中指定 
在Tomcat的配置文件中,一个Web应用就是一个特定的Context,可以通过在server.xml中新建Context里部署一个JSP应用程序。打开server.xml文件,在Host标签内建一个Context,<host/>节点中添加:

<Context path="/test" docBase="D:\workspace\test\WebRoot" debug="0" privileged="true"></Context>或者<Context path="/myweb" reloadable="true" docBase="D:\myweb" workDir="D:\myweb\work"/>或者<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
  • 1
  • 2
  • 3
  • 4
  • 5

说明: 
path:虚拟路径。 
docBase:应用程序的物理路径。 
workDir:这个应用的工作目录,存放运行时生成的与这个应用相关的文件。 
debug:设定debug level, 0表示提供最少的信息,9表示提供最多的信息。 
privileged:设置为true的时候,才允许Tomcat的Web应用使用容器内的Servlet。 
reloadable:如果为true,则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目录的变化,自动装载新的应用程序,可以在不重起tomcat的情况下改变应用程序,实现热部署。 
ntiResourceLocking 和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>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

实例截图:



原创粉丝点击