TOMCAT 部署web项目 方法介绍
操作前,先来了解一下Tomcat的目录结构。 (适用于Tomcat 6.0,Tomcat7.0)
Tomcat下有7个目录,分别是bin,conf,lib,logs,temp,webapps,work 目录,现在对每一目录做介绍。
Tomcat根目录在tomcat中叫<CATALINA_HOME>,
1.<CATALINA_HOME>/bin: 存放各种平台下启动和关闭Tomcat的脚本文件。
2.<CATALINA_HOME>/lib: 在lib目录下的lib目录,存放Tomcat服务器和所有web应用都能访问的JAR。
3.<CATALINA_HOME>/work: Tomcat把各种由jsp生成的servlet文件放在这个目录下。
4.<CATALINA_HOME>/temp: 临时活页夹,Tomcat运行时候存放临时文件用的。
5.<CATALINA_HOME>/logs: 存放Tomcat的日志文件。
6.<CATALINA_HOME>/conf: Tomcat的各种配置文件,最重要的是server.xml。
7.<CATALINA_HOME>/webapps: Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
配置tomcat 用户 ,修改文件tomcat-users.xml 内容:
<?xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="tomcat"/> <role rolename="role1"/> <role rolename="manager"/> <role rolename="admin"/> <user username="***" password="***" roles="admin,manager"/> <user username="tomcat" password="tomcat" roles="tomcat"/> <user username="both" password="tomcat" roles="tomcat,role1"/> <user username="role1" password="tomcat" roles="role1"/> </tomcat-users>
动态部署(最简单的)
登陆tomcat管理控制台:http://localhost:8080/ ,输入用户名和密码后便可管理应用并动态发布。
输入用户名和密码
选择你要部署的项目的xxxx.war包,并发布就ok了,如何打warmyeclipse 和eclipse都有这个功能很方便的,访问:如果是ROOT.war,直接通过http://ip:port/即可访问,如果是xxx.war,可通过http://ip:port/xxxx/访问 。
静态部署(需要手动修改或copy)
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:/hellowebName" 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"/>
说明:(注意路径中的/、把符合JavaWeb规范的应用web项目放到你的指定路径,直接把项目war解压就可以)
path是虚拟路径,你访问的路径名称;
docBase : 应用的物理绝对路径,默认是%Tomcat_Home%/webapps
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="D:/hellowebName" 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仍会去配置并加载。。。
待续...