我希望能夠部署.war文件並檢測應用程序在哪個端口上提供服務。我有兩個grails的應用程序在不同的tomcat實例中運行,理想情況下我希望根據每個特定的tomcat實例調整每個應用程序的配置。每個tomcat實例使用不同的端口,因此檢測應用程序所服務的端口意味着應用程序知道應用程序正在運行哪個tomcat實例。檢測運行Grails應用程序的端口
感謝您的幫助!
我希望能夠部署.war文件並檢測應用程序在哪個端口上提供服務。我有兩個grails的應用程序在不同的tomcat實例中運行,理想情況下我希望根據每個特定的tomcat實例調整每個應用程序的配置。每個tomcat實例使用不同的端口,因此檢測應用程序所服務的端口意味着應用程序知道應用程序正在運行哪個tomcat實例。檢測運行Grails應用程序的端口
感謝您的幫助!
當第一個請求到達時,獲取端口是否足夠?那麼這可能幫助:
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/
永遠記住,奧尤可以使用所有可用Java代碼在你的Grails應用程序中。
注意:如果Tomcat位於代理之後,請求值將是代理使用的值 - 而不是Tomcat正在使用的端口/方案/等。 –
我使用了externalized configuration,這樣兩個grails應用程序都會讀取一個相對於每個相應的tomcat實例的啓動位置的配置。通過控制每個tomcat實例的啓動位置,然後對每個grails應用程序進行適當的配置。因此,通過將外化配置相對於開始的tomcat目錄,實現特定的聖盃應用配置!
你能給我反饋我的答案嗎?它有幫助嗎? – rdmueller
謝謝Ralf,但我使用了不同的解決方案。我需要解決方案在第一個請求之前工作。 – Kurent
請注意,通常「哪個端口」可能沒有單個答案 - 您可以爲同一個tomcat配置幾個不同的連接器,每個連接器都使用不同的端口號(例如SSL和非SSL)。 –