第一种: Tomcat自动部署
将web应用程序打成的war包直接拖到%Tomcat_Home%\webapps文件夹下即可
第二种:修改%Tomcat_Home%\conf\server.xml文件
// 添加<Context>元素,配置文件默认没有<Context>元素
<Context docBase="${webAppAbsolutePath}" path="/XXX" debug="0" reloadable="false" />
- docBase:web应用程序所在的绝对路径
- 不能打成war包,因为不支持动态部署;
- 若path=“/”,访问时直接输ip+端口号就可以访问应用程序了;webapps路径下的ROOT项目访问不到了
- 如果path="/XXX/",访问时需输ip+端口号+path访问应用程序;若输入ip+端口号,访问的则是webapps路径下的ROOT项目
- path:web应用虚拟路径名
- 可以配置多个context,但是docBase+path组合不能相同,否则tomcat起不来
- 该方式不支持动态部署,建议在生产环境使用
- 当然如果使用Eclipse,在Eclipse中的设置也有改变:打开菜单栏window选择preference(首选项)——左侧选择Tomcat——可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Server.xml文件来部署web应用。
第三种:独立的context xml文件
在%Tomcat_Home%\conf路径下新建一个文件夹Catalina——再在其中新建一个localhost文件夹——最后再新建一个XML文件,即增加两层目录并新增XML文件:%Tomcat_Home%\conf\Catalina\localhost\XXX.xml,配置文件内容为:
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="${webAppAbsolutePath}" reloadable="true" workDir=“XXX” />
- path:该方式部署时,path属性无效
- workDir:web应用部署后存放的路径,项目名称为XXX.xml文件名,如果自定义web部署文件XXX.xml中未指明workdir,则web应用将默认部署在%Tomcat_Home%\work\Catalina\localhost\路径下新建的以XXX命名的文件夹下
- 访问路径为 ip+端口号+XXX
- 访问路径若写:ip+端口号,访问的是webapps\ROOT项目
第四种:利用Tomcat控制台部署
启动tomcat,进入tomcat的manager控制台的deploy区域,在Context path中输入"XXX"(可任意取名),在WAR or Directory URL输入项目所在路径(不能是war的路径,否则会报错)
- 这样部署的项目名称就变为了Context path的名称,在webapps/下面多了一个Context path名称的文件夹,内容为项目内容
- 支持不停tomcat情况下,可动态部署
-
1. 如访问manage权限不够,修改config\tomcat-users.xml为: <role rolename="admin-gui"/> <role rolename="manager-gui"/> <user username="admin" password="admin" roles="admin-gui,manager-gui"/> 2.并将 webapps\manager\META-INF\context.xml 的下面内容解注(ip做了限制): <Valve className="org.apache.catalina.valves.RemoteAddrValve" allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
总结
- 支不支持动态部署:指的的war是否能自动解压
- reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。这个属性在开发阶段通常都设为true,方便开发;在发布阶段应该设置为false,提高应用程序的访问速度 ;