Apache tomcat 多次重新加载上下文
Posted
技术标签:
【中文标题】Apache tomcat 多次重新加载上下文【英文标题】:Apache tomcat reloads context multiple times 【发布时间】:2021-09-12 22:52:01 【问题描述】:我的 tomcat 中运行了 2 个 web 应用程序。通常,当我启动 tomcat 时,我可以看到两者都可以正常工作。我需要在另一个端口上运行一个 webapp,比如 8888,出于同样的目的,我在 server.xml 的 Service 块下面添加了
<Service name="api_service">
<Connector port="8888" protocol="HTTP/1.1" connectionTimeout="20000" />
<Engine name="api_engine" defaultHost="localhost">
<Host name="localhost" appBase="webapps" unpackWARs="false" autoDeploy="false">
<Context docBase="api.war" path="/api2" reloadable="false"/>
</Host>
</Engine>
</Service>
添加后,我可以访问 8888 端口上的服务,但在日志中我可以看到 api webapp 服务上下文已加载多次(在我的情况下为 3 次)。如何避免?
【问题讨论】:
【参考方案1】:已解决: 如果我们为现有的网络应用程序添加上下文/引擎,那么它将被加载两次。
这可以通过将 webapps 分离到另一个目录来处理。
【讨论】:
Tomcat's documentation 中有关于这种配置的警告:"使用自动部署时,XML Context 文件定义的docBase
应该在appBase
目录之外. 如果不是这种情况,部署 Web 应用程序可能会遇到困难,或者应用程序可能会部署两次。”以上是关于Apache tomcat 多次重新加载上下文的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring-Boot 启动 Tomcat 上下文时出错:java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicD
向类 org.apache.tomcat.websocket.server.WsContextListener 的侦听器实例发送上下文初始化事件的异常