2017-08-02 7 views
1

を@RequestMappingを介して他のプロジェクトへの呼び出しを行います。 のApp BのURLは次のとおりです。私はコントローラへの呼び出しを行うことで、アプリBに、アプリAを接続したいURL

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

どちらのアプリケーションが私達によって開発され、まだ両方で統合されているとはみなされません。

これは可能ですか?私たちは春とJava8を使用しています。私は何を始めるべきかと混同しています。アプリBは、コントローラからURLを呼び出す前に認証を要求しています。

更新: App AはApp Bと同じように構成され、データをデータベースに保存した後、これらのデータを操作するためにApp Bを呼び出す必要があります(コードはApp Bにあります)。基本的にApp Aプロセスの終わりに、App Bプロセスの1つを開始する必要があります。

+1

は私たちに – sunkuet02

答えて

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(); 
    } 
} 
+0

おかげでたくさんの 'のアプリA'の詳細を提供し、それは完全に働きました! – ttdol2506

関連する問題