我在服务器1上有一个带有Service Annotation的类。
@Service
public class MainHandler implements AbstractHandler {
@Autowired
private ServiceLocal defaultService;
@Override
public boolean execute(HttpServletRequest request, HttpServletResponse response) throws MsisdnServiceException {
System.out.println("The default Request" + request);
}
}
我希望在传递请求后从其他远程服务器调用此方法并从中获取响应,春天的方法是什么。
答案 0 :(得分:1)
远程调用方法将使用一种名为RMI的技术,您可以轻松地进行谷歌搜索。
但是,由于你想使用HttpServletRequest和HttpServletResponse,你可能应该使用Spring MVC编写一个Http Controller。为此,你也可以谷歌,很容易找到优秀的教程和指南。
答案 1 :(得分:0)
您可以使用spring RestTemplate
与服务器进行通信。
首先,您需要在server 1
后端创建一个控制器,以便从server 2
获取数据:
@RestController
public class MyController {
@RequestMapping(value = "/endpoint", method = RequestMethod.POST)
String execute(@RequestBody MyClass object) {
System.out.println("Your data" + object);
}
}
在server 2
后端创建一个方法,使用server 1
向RestTemplate
的端点进行REST调用:
void request() {
String url = "http://localhost:8080/endpoint";
HttpHeaders httpHeaders = new HttpHeaders();
httpHeaders.set("Content-Type", "application/json");
JSONObject json = new JSONObject();
json.put("name", "yourName");
json.put("email", "name@gmail.com");
HttpEntity < String > httpEntity = new HttpEntity < String > (json.toString(), httpHeaders);
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.postForObject(url, httpEntity, String.class);
}