我想通过调用Controller将app A连接到app B: 应用B网址为:
@RequestMapping(value = "/v/getInfo")
public ResponseEntity<String> getVInfo() {
vService.getInfo();
return new ResponseEntity<>("Success", HttpStatus.OK);
}
这两个应用程序都是由我们开发的,尚未考虑将它们集成在一个应用程序中。
有可能这样做吗?我们正在使用spring和Java8,我对应该从什么开始感到困惑。在从Controller调用URL之前,应用B还需要进行身份验证。
更新: App A的配置与App B相同,在将数据保存到数据库后,我们需要调用App B来操作这些数据(代码在App B中)。基本上在App A流程结束时,我们需要启动一个App B流程。
答案 0 :(得分:2)
您只需使用标准RestTemplate
进行正常的网络通话。
在应用程序A的最基本级别:
@Component
public class AppBCaller {
@Autowired RestTemplate template;
public String getInfo() {
String plainCreds = "username:password";
byte[] plainCredsBytes = plainCreds.getBytes();
byte[] base64CredsBytes = Base64.encodeBase64(plainCredsBytes);
String base64Creds = new String(base64CredsBytes);
HttpHeaders headers = new HttpHeaders();
headers.add("Authorization", "Basic " + base64Creds);
HttpEntity<String> request = new HttpEntity<String>(headers);
ResponseEntity<String> response = restTemplate.exchange("http://whereAppBis/v/getInfo", HttpMethod.GET, request, String.class);
return response.getBody();
}
}