簡體   English   中英

如何使用Spring將請求轉發到另一台服務器?

[英]How to forward a request to another server with Spring?

我有一個客戶端和一個服務器。 客戶端僅包含UI和視圖層以及控制器。 服務器端包含服務和存儲庫層以及更復雜的內容。 現在,用戶使用以下控制器向客戶端發送請求

@RequestMapping(value = "/save", method = RequestMethod.POST, produces = "application/json; charset=UTF-8")
   @ResponseBody
   public String save(HttpServletRequest request, HttpServletResponse response) throws IOException {

      return CallWebService.callWebServiceUrl(request);
   }

但來自服務器端的控制器具有以下網址的控制器

@RequestMapping(value = "/save", method = RequestMethod.POST)
   @ResponseBody
   public CoaChartAccount save(@RequestBody MyObject object) {

      service.save(objCoaChartAccount);
      return object;
   }

現在,我想知道如何將來自客戶端的包含請求有效負載的請求傳遞給另一側的此類控制器?

客戶端控制器將必須使用RestTemplate將數據發布到Web服務,請參閱http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#rest-client-access以獲取相關信息更多細節。

例如,您的客戶端控制器應如下所示:

@RequestMapping(value = "/saveClient", method = RequestMethod.POST)
@ResponseBody
public CoaChartAccount save(@RequestBody CoaChartAccount object) throws IOException {
   return restTemplate.postForObject(URL_SAVING_MYOBJECT, object, CoaChartAccount.class);
}

服務器與您指定的服務器相同(標准的REST Web服務):

@RequestMapping(value = "/saveServer", method = RequestMethod.POST)
@ResponseBody
public CoaChartAccount save(@RequestBody CoaChartAccount object) {

  service.save(object);
  return object;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM