代码之家  ›  专栏  ›  技术社区  ›  Esko

Spring的应用程序上下文阻止其他应用程序在同一个servlet容器中启动

  •  1
  • Esko  · 技术社区  · 16 年前

    我有两个web应用程序在同一个Servlet容器中运行( 野猫 ),A和B。这两个连接彼此使用弹簧远程处理。在启动时,B需要调用A来自动打开连接,这基本上是一个非常简单的身份验证调用。

    但是因为B是( 对我来说 )在A之前加载,B的应用程序上下文阻塞,直到整个应用程序启动。这意味着B应用程序将被卡住,直到出现超时等情况,然后才允许A启动,但是此时B现在无法连接到A,两个web应用程序之间所需的连接将无法创建。

    InitializingBean 使用侦听器初始化应用程序上下文。

    1 回复  |  直到 16 年前
        1
  •  0
  •   Bozho    16 年前

    我想到了两个选择:

    • 在不同的端口上运行两个Tomcat实例。
    • 在新线程中执行身份验证(最好使用 ExecutorService ). 因此,“主”线程不会阻塞,部署将继续。