2012-09-09 2 views
3

.war 파일을 배포하고 응용 프로그램이 제공되는 포트를 감지 할 수 있기를 원합니다. 서로 다른 tomcat 인스턴스 내에서 실행되는 두 개의 grails 애플리케이션을 가지고 있으며 이상적으로는 각 특정 tomcat 인스턴스에 따라 각 애플리케이션의 구성을 조정하고 싶습니다. 각 Tomcat 인스턴스는 다른 포트를 사용하므로 앱이 제공되는 포트를 감지하면 앱이 어떤 Tomcat 인스턴스가 실행 중인지 알 수 있습니다.실행중인 grails 응용 프로그램의 포트 감지

어떤 도움을 주셔서 감사합니다!

+0

내 대답에 대한 피드백을 줄 수 있습니까? 도움이 되었습니까? – rdmueller

+0

감사합니다. Ralf,하지만 다른 해결책을 사용했습니다. 첫 번째 요청 전에 작업 할 솔루션이 필요했습니다. – Kurent

+2

일반적으로 "어느 포트"에 하나의 대답이 없을 수도 있습니다. 동일한 포트 번호 (예 : SSL 및 비 SSL)에있는 여러 개의 다른 커넥터를 동일한 Tomcat에 대해 구성 할 수 있습니다. –

답변

0

첫 번째 요청이 도착하면 포트를 얻는 것으로 충분합니까? 그런 다음이 도움이 될 수 :

println request.requestURL 
    println request.request.request.request.connector.port 

그렇지 않으면,이 견인 페이지를 보면 걸릴 - 나는 그들이

Get the server port number from tomcat with out a request

항상 http://www.asjava.com/tomcat/how-to-get-tomcat-port-number-in-java/

은 오유가 가능한 모든를 사용할 수 있음을 기억하는 데 도움이 될 것 같아요 Grails 애플리케이션에서 자바 코드.

+0

경고 : 톰캣이 프록시 뒤에 있으면 요청 값은 톰캣이 사용하는 포트/스킴/etc가 아닌 프록시가 사용하는 값이됩니다. –

1

나는 두 개의 grails 앱이 각각의 tomcat 인스턴스가 시작된 위치와 관련된 설정을 읽을 수 있도록 externalized configuration을 사용했다. 각 tomcat 인스턴스가 시작되는 곳을 제어함으로써 각 grails 앱이 적절히 설정됩니다. 그러므로 시작된 톰캣 디렉토리에 상대적인 외부화 된 설정을 배치함으로써 특정 grail의 app 설정이 이루어집니다!

관련 문제