问题遇到的现象和发生背景
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 "%r" %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.项目不要出现启动两次的情况
感激不尽!