war包部署tomcat下的webapps中的子目录中的方法
一般情况下部署war包方式
在一般情况下,我们部署服务器都会直接将war包拷贝到tomcat的 webapps 文件夹下,接着启动tomcat之后,tomcat会自动解压war包并运行。
部署到wepapps下的子目录中的方式
war包拷贝到webapps下会自动解压,但是拷贝到webapps的子目录下不会自动解压。那么我们要通过一些配置完成我们的目标。
- 更改server.xml配置文件
server.xml文件在tomcat安装目录的/conf/server.xml
更改的位置如下:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
<Context path="/Test/api" docBase="/Test/api/" debug="0" privileged="true" reloadable="true"/>
</Host>
也就是增加了一句配置
<Context path="/Test/api" docBase="/Test/api/" debug="0" privileged="true" reloadable="true"/>
path指定的是webapps下的子目录路径,docBase也是子目录路径。
- 将解压得到的WEB-INF和META-INF文件夹拷贝到相应的子目录下
也就是拷贝到我们上一步指定的那个子目录路径下。 - 启动tomcat
- 完成
注意事项:
我们都知道部署到webapps下的war包自动解压后访问路径是/war包名/映射路径
例如:
http://localhost:8080/user/get_login
但是我们这样部署后,访问路径就会发生变化
路径中要加上我们创建的子目录路径
例如:
http://localhost:8080/Test/api/user/get_login
这样才能正确找到我们项目的映射。