zhouqx979 2021-12-08 10:20 采纳率: 0%
浏览 14

tomcat server.xml配置问题,项目启动两次

问题遇到的现象和发生背景

tomcat9部署war包,写了server.xml配置,想要通过ip+端口(url后面不带war包名称)直接访问,故配置了docBase为war包解压后的路径,同时appBase写了webapps

问题相关代码,请勿粘贴截图
<Service name="Catalina">
    <Connector port="8085" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8445" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="false">
        <Context path="/" docBase="/apache-tomcat-9.0.39/webapps/user-0.0.1-SNAPSHOT" reloadable="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" />
      </Host>

    </Engine>
  </Service>
运行结果及报错内容

启动tocmat,查看启动日志,发现项目启动了两次。查看webapps目录,有两个文件夹,分别是“ROOT""和user-0.0.1-SNAPSHOT“。

我的解答思路和尝试过的方法

百度查了解决方案,基本都是,把appBase改为appBase="",只配置docBase。
但这种方案,在我删掉webapps目录下所有的文件,新放入个war包进去,启动tomcat就不解压war包了,项目启动不成功。

所以appBase="webapps"还是得配置

docBase不配置也不行,因为需要通过ip+端口(url后面不带war包名称)直接访问

我想要达到的结果

请问这种情况,server.xml怎么配置可以达到我想要的效果呢
1.启动tomcat,可以解压对应webapps目录下的war包
2.通过ip+端口(url后面不带war包名称)直接访问
3.项目不要出现启动两次的情况

感激不尽!

  • 写回答

1条回答 默认 最新

  • CSDN专家-微编程 2021-12-08 10:48
    关注

    这个简单,tomcat下默认主目录就是ROOT目录,你将war包里的代码文件放进去就行了,如果不想每次都要进行解压后将里面的文件复制拷贝到ROOT目录下,可以写一个shell脚本,运行脚本自动执行解压移动文件操作

    评论

报告相同问题?

问题事件

  • 创建了问题 12月8日

悬赏问题

  • ¥15 oracle数据库查询语句问题
  • ¥15 有没有c++绘制算法的佬们吗救孩一下
  • ¥15 android 蓝牙闪退
  • ¥15 绝缘子污秽comsol仿真参数
  • ¥15 Fatal error in Process MEMORY
  • ¥15 labelme生成的json有乱码?
  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码