Tomcat配置项目直接通过http://ip:port访问

Tomcat配置项目直接通过/访问

遇到一个需求:因为这个域名下只部署了这一个项目,用户想直接通过域名来访问这个项目而不是加一层项目地址。

方式一

修改war文件名

  1. 将你的war文件重命名为ROOT.war。部署到Tomcatwebapps目录即可。
  2. 如果已经存在ROOT文件夹,删除它,以便Tomcat自动加解压缩并部署ROOT.war
  3. 启动Tomcat后,项目可以直接通过https://localhost:8080/直接访问。

方式二

修改server.xml文件:在<Host/>添加一个<Context/>并设置pathdocBase

<Context path="/" docBase="../webapps/messenger.war" reloadable="true"/>

或者

<Context path="/" docBase="/messenger" reloadable="true"/>

  • path: 指定Web应用程序的上下文路径,即在URL中访问应用程序的路径。例如,path="/myapp" 将使应用程序在 http://localhost:8080/myapp 上可用。

  • docBase: 指定Web应用程序的根目录,可以是WAR文件的路径或已解压的目录。例如,docBase="/path/to/myapp.war"docBase="/path/to/myapp"

  • reloadable: 指示是否支持应用程序的自动重新加载。设置为 true 表示支持自动重新加载,便于开发时的快速部署。默认值是 false

注意

这种方式webapps下面一个war包可以会生成两个文件夹,一个是ROOT,一个是应用程序的目录。这两个目录下的文件是相同的,也就是**tomcat把这项目加载了两次**,一个是/访问,一个是/应用程序访问的,这两套是相互隔离的。

解决方案

<Context path="/" docBase="${catalina.base}/apps/messenger.war" debug="0" reloadable="true"/>

不把war包放入到webapps中,而是而是通过docBase来指定war的路径,这样tomcat只会在webapps内生成一个ROOT目录。

相关推荐
北辰屿风13 小时前
宝塔部署tomcat项目,nginx负载均衡代理访问报错404问题
java·tomcat
ictI CABL13 小时前
Linux环境下Tomcat的安装与配置详细指南
linux·运维·tomcat
fTiN CAPA1 天前
Tomcat 都有哪些核心组件
java·tomcat·firefox
untE EADO1 天前
Tomcat的server.xml配置详解
xml·java·tomcat
ictI CABL1 天前
Tomcat 乱码问题彻底解决
java·tomcat
yaodong5181 天前
Spring 中使用Mybatis,超详细
spring·tomcat·mybatis
我登哥MVP2 天前
【SpringMVC笔记】 - 9 - 异常处理器
java·spring boot·spring·servlet·tomcat·maven
巨大八爪鱼2 天前
【方法】Tomcat网站添加用户名密码弹窗认证
运维·服务器·tomcat·jsp·mod_jk
博风3 天前
在tomcat应用里添加了一个线程池对象,向这个线程池发送任务,让其执行。 我希望在tomcat停机时,能等待线程池里的任务执行完了再停机,要如何实现?
java·tomcat
o丁二黄o3 天前
若依部署Nginx和Tomcat
运维·nginx·tomcat