2010-07-13 1 views
1

동일한 서블릿 컨테이너 (Tomcat), A 및 B에서 실행되는 두 개의 웹 애플리케이션이 있습니다.이 두 가지는 Spring Remoting을 사용하여 서로 연결됩니다. 시작할 때 B는 자동으로 연결을 열려면 A를 호출해야합니다. 기본적으로 정말 간단한 인증 호출입니다.Spring의 애플리케이션 컨텍스트가 다른 애플리케이션이 동일한 서블릿 컨테이너에서 시작하지 못하도록합니다.

그러나 B가 (내 경우) A, B의 응용 프로그램 컨텍스트가 전체 응용 프로그램이 시작될 때까지 차단되기 전에로드되기 때문에. 이것이 의미하는 바는 B 응용 프로그램이 시간 초과 등이 발생할 때까지 멈추고 A 만 시작할 수 있지만이 시점에서 B는 이제 A에 연결할 수 없으며 두 웹 응용 프로그램간에 필요한 연결이 만들어지지 않습니다 .

그럼 어떻게 해결할 수 있습니까? 현재 InitializingBean을 사용하여 연결 명령을 연결하고 있으며 응용 프로그램 컨텍스트는 수신기를 사용하여 초기화됩니다. 내 마음에 와서

+0

이 당신이 웹 애플리케이션 –

+0

@Script 러너를위한 시작 순서를 지정할 수 없습니다 것 같다 : 나도 알아, 그 이유 I 이 문제가 생겼어. – Esko

+1

Spring Remoting 사용 방법을 보여줄 수 있습니까? 유선 초기화 방법에 따라 지연 초기화를 사용할 수 있습니다. – skaffman

답변

0

두 가지 옵션 : 다른 포트에

  • 실행 톰캣의 두 인스턴스.
  • 새 스레드에서 인증을 수행하십시오 (바람직하게는 ExecutorService 사용). 따라서 "주"스레드는 차단되지 않고 배포가 계속됩니다. http://wiki.apache.org/tomcat/FAQ/Miscellaneous#Q27에서
  • 톰캣 위키
+0

동일한 서블릿 컨테이너에서 두 개의 응용 프로그램을 실행하는 것은 실제로 요구 사항이므로 첫 번째 옵션은 불행히도 문제가되지 않습니다. 그렇지 않으면 정상적인 bean처럼 사용되기 때문에 "정상적인"상태로 돌아 가기 위해 추가적인 보일러 플레이트가 필요하기 때문에 "커넥터"를 실행하기위한 보편적 인 코드를 피하려고합니다. – Esko