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

时间:2010-07-13 12:18:08

标签: java spring tomcat servlets

我有两个Web应用程序在同一个Servlet容器( Tomcat ),A和B中运行。这两个应用程序使用Spring Remoting相互连接。在启动时,B需要调用A来自动打开连接,它基本上是一个非常简单的身份验证调用。

然而,由于B(在我的情况下 )在A之前加载,B的应用程序上下文会阻塞,直到整个应用程序启动。这意味着B应用程序将一直停留,直到超时等发生,并且只允许A启动,但此时B现在无法连接到A,并且不会创建两个Web应用程序之间的必需连接

那么,我该如何解决这个问题呢?我正在使用InitializingBean挂钩连接命令,并使用监听器初始化应用程序上下文。

1 个答案:

答案 0 :(得分:0)

我想到了两个选择:

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