2012-05-23 97 views
1

我目前正在致力於Rest服務,該服務需要調用同一服務器上提供的另一個Rest-Method。因此,例如路徑/ myPath/foo上的方法需要從路徑/ myPath/restApi/bar上的方法請求一些東西。如何在不使用完整路徑的情況下使用Spring RestTemplate(或其他)來做到這一點? RestTemplate.postForObject(...)方法(不能使用完整路徑,因爲在構建工件時,工件的URL和端口是未知的)。Rest RestTemplate Rest服務中的postForObject調用

感謝您的幫助! 問候, Andy

回答

1

首先,你爲什麼要使用URL訪問同一服務器上的REST方法(它看起來像是同一個應用程序),而不是直接調用第二個URL後面的服務方法?如果這是相同的servlet容器,但多個WAR文件比罰款。

回到你的問題:你有主人和港口。您在說,當客戶端嘗試訪問/myPath/foo時,服務器應該訪問/myPath/restApi/bar。當你處在一個控制器/動作/處理器方法中時,無論你的REST框架如何,都可以獲得HttpServletRequest。請求對象後,您可以找出您的客戶端用於連接到您的第一個Web服務的主機和端口。您可以使用該信息在同一臺服務器上調用第二個Web服務。

第二個想法:如果這是同一臺服務器,你不能只使用localhost

+0

謝謝。事實上,我能夠獲得HttpServletRequest並以這種方式處理它。 – andy