2017-08-02 1 views
1

Je veux connecter l'application A à l'application B en faisant un appel au contrôleur: URL App B est:Faire un appel à un autre projet via @RequestMapping url

@RequestMapping(value = "/v/getInfo") 
public ResponseEntity<String> getVInfo() { 
    vService.getInfo(); 
    return new ResponseEntity<>("Success", HttpStatus.OK); 
} 

Les deux applications sont développées par nous et pas encore considéré pour intégrer les deux en un.

Est-ce possible? Nous utilisons le printemps et Java8, et je suis confus avec ce que je devrais commencer. L'application B nécessite également une authentification avant d'appeler l'URL du contrôleur. L'application A est configurée de la même manière que l'application B, et après l'enregistrement des données dans la base de données, nous avons besoin de l'appel de l'application B pour manipuler ces données (le code est dans l'application B). Fondamentalement, à la fin de l'App Un processus, nous devons démarrer l'un des processus App B.

+1

Transmettez-nous les détails de l'application 'A' – sunkuet02

Répondre

2

Vous avez juste besoin d'effectuer un appel Web normal en utilisant la norme RestTemplate.

À tout niveau de base en application 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(); 
    } 
} 
+0

Merci beaucoup, cela a fonctionné parfaitement! – ttdol2506