Tomcat 中把自己的项目部署成根目录 Tomcat技术
  • 创建时间:2023-02-27 / 最新修改时间:2023-02-27 09:22:07
  • 702
  • 0
转载请注明本文出处:http://limpire.cn/artifact/heap/web/214.html


环境

使用了 Docker ,镜像为 tomcat:jdk11-openjdk . 经查阅这个镜像的tomcat版本是9.0.

简单部署javaWeb项目

如果把war把上传到tomcat的webapps上,tomcat会自动解包。 例如 把 bar.war 上传到webapps上,将会被tomcat自动解压,从而多了一个bar文件夹。 然后我们可以打开 http://localhost:8080/bar 来访问我们的项目。

把自己项目设置为根

一般来说如果用docker容器部署项目,一个tomcat运行一个项目就够了。 于是有了我们想把 http://localhost:8080/bar 变成http://localhost:8080

  • 首先删除 webapps下的ROOT目录,这是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 &quot;%r&quot; %s %b" />
				   
	<Context path="" docBase="web" reloadable="false" />

</Host>

<Context path="" docBase="web" reloadable="false" />

  • 当path="" 时,则表示这是tomcat的默认url路径,也就是 http://localhost:8080/
  • docBase 就是你的web项目的文件夹,这里用了相对路径,相对appBase下的路径,也就是 webapps/web,也可以用绝对路径。
    • 这里记录一下踩坑记,docBase 的名字尽量复杂,不要和@RequestMapping中的路径有冲突。 例如:

      控制器中有 @RequestMapping("web/index"); 然后docBase="web"也设置成了 web.

      那么当访问 http://localhost:8080/web/index 时候会出错。需要访问 http://localhost:8080/web/web/index 才能访问得到。

  • 重启tomcat。

重启后你会发现,在webapps文件夹中又多了一个ROOT文件夹,里面放的是你的项目的文件。 现在我们可以直接通过 http://localhost:8080/ 访问我们的项目。


请说:

昵称 Email

评论:

吃不起海鲜就买海鲜味的酱油

回车换行很爽,代表着一个段落或者一个小结的完成,打印出来之后就是一个可触摸的成品.围着这种意境,一起来技术性打酱油.

文章列表
分类目录
友情链接