2012-11-22 34 views
0

我有一個在Jetty服務器下運行的Apache tapestry應用程序。因爲可以在請求對象的請求期間獲取正在運行的HTTP服務器的端口號。但是我需要找出程序啓動時服務器運行的端口號(AppModule中的某處)。有沒有辦法通過編程獲得這些信息?我試圖在服務中訪問@Symbol(SymbolConstants.HOSTPORT)字符串hostPort,但這不起作用。它只是給出0。顯然0表示我應該從請求中查找端口號。如何在apache掛毯上的應用程序啓動時找到端口號

我需要它的原因是因爲我需要將這些信息寫入其他服務可訪問的數據庫中,以便他們知道此應用程序正在運行的端口/ IP地址並可以調用它。

回答

0

我很確定你不能通過程序從javax.servlet包中的任何東西中確定servlet容器的端口,除了ServletRequest,即getLocalPort()

Tapestry不會爲您的應用程序容器提供任何不在servlet規範中的額外句柄。

因此,您需要等待第一個請求進入並存儲使用的端口(推薦),或者重複您的端口配置 - 一次在您的容器配置(jetty)中,一次在應用程序中的某個位置(AppModule,web .xml或其他配置文件)。

第三個選項(極不推薦)將從您的tapestry應用程序中查找您的容器的配置。請不要這樣做。

+0

看到這個答案的tomcat ..不知道你是否可以做類似的碼頭? http://stackoverflow.com/questions/7481432/i-need-to-know-the-http-and-https-port-my-java-webapp-is-running-on-webapp-start – pstanton

相關問題