2015-01-02 3 views
0

나는 playservlet에서 호출하는 메서드를 가지고 있지만, 게임에서 2.4.0M2 버전의 응답은 약속에 싸여있다.약속이 완료 될 때까지 내 메서드를 대기하는 방법

그래서 메소드는 webservice가 완료 될 때까지 기다리지 않고 정상적인 작업으로 돌아갑니다. 이전 플로우를 무시하면 문제가 발생합니다. 이제는 webservice를 호출하는 동일한 줄에서 메소드를 대기시켜야합니다. 웹 서비스가 응답을 반환하면 다음 줄에서 계속 실행하십시오.

할 방법이 있습니까?

내 코드 :

Promise<WSResponse> response = WS.url(SignConstants.SIGN_DOCUMENT_URL).post(new File(inputfilepath)); 

return response.map(new Function<WSResponse, Boolean>() { 
    public Boolean apply(WSResponse response) throws Exception { 
     //some code here 
     return Boolean.TRUE; 
    } 
}); 
+0

이 코드는 문제가없는 코드가 어디에 있습니까? –

+0

@BenjaminGruenbaum이 약속을 되 돌리는 중으로 웹 서비스가 anything.Anyway를 반환하기 전에 코드의 다음 줄이 실행될 것입니다. 어쨌든 나는 대답을 얻었습니다. – Prakash

답변

0

나는 혼자 답을 찾았습니다.

매개 변수로 시간 초과를 지정하는 get 메소드를 사용하는 것이 전부입니다.

답 : 내 결과가 그래서 난 내 원하는 출력을 얻을 것이다 약속 포장되지 않는

WSResponse response=WS.url(SignConstants.SIGN_DOCUMENT_URL) 
.post(new File(inputfilepath)).get(10000); 

.

어쨌든 고맙습니다.

0

당신이에서이 방법을 요구하고있다? 요청을 처리하는 컨트롤러 메소드 내부에 있습니까? 예 경우 Result 대신

Promise<Result> 

을 반환해야합니다. 문서의 비동기 결과 섹션을 참조하십시오. https://www.playframework.com/documentation/2.2.x/JavaAsync

+0

그것은 k의 놀이입니다. 2.2 나는 놀이에 대해 묻고 있습니다. 2.4.0M2 version.anyway 대답. – Prakash

관련 문제