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 多次重新加载上下文的主要内容,如果未能解决你的问题,请参考以下文章

Tomcat上下文资源不会加载h2驱动程序

Tomcat 上下文资源不会加载 h2 驱动程序

tomcat加载出错求教

使用 Spring-Boot 启动 Tomcat 上下文时出错:java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicD

windows下apache代理转发tomcat

向类 org.apache.tomcat.websocket.server.WsContextListener 的侦听器实例发送上下文初始化事件的异常