웹 서비스 개발 초보자입니다. 우리는 봄 우리가 비동기 로그인 방법을 가지고 소비하는 3Java에서 비동기 웹 서비스 호출을 동기식으로 수행하십시오.
웹 서비스를 사용하여 자바 REST 웹 응용 프로그램을 구축하고있다. 우리는 그들의 서비스가 응답을 다시 게시하는 콜백 리스너 URL을 제공했습니다. 우리가 로그인에 대한 요청을 보낼 때
그래서 우리는 승인으로 빈 응답을받을 수 있습니다. 그리고 서비스는 리스너 URL에 실제 데이터가 포함 된 응답을 보냅니다.
, 내가 어떻게 동기 호출로 로그인 서비스를 호출하기 위해 구현/디자인해야 도와주세요? 감사합니다. .
편집 : 다음은 토큰을 추출하여 개체로 설정하는 포스트 백 메시지의 수신기/컨트롤러입니다.
@Controller
public class PostbackController {
@Autowried
public LoginResponse loginRS;
@RequestMapping(value = "/callbacklistener", method = RequestMethod.POST)
@ResponseBody
public String postbackHandler(@RequestParam("postback") String requestMessage) {
//We extract the token value from requestMessage.
String token = requestMessage;
loginRS.setToken(token);
return "<Confirm/>";
}
}
아래는 로그인 서비스를 호출하고 10 초 동안 기다리는 스레드입니다. 2 초마다 객체의 상태를 확인합니다.
public class LoginService extends Thread {
@Autowried
public LoginResponse loginRS;
public LoginService() {
this.start();
}
@Override
public void run() {
try {
System.out.println("Thread Start.");
this.login();
System.out.println("Thread Complete.");
} catch (InterruptedException e) {}
}
public LoginResponse login() {
String loginXML = "";
String response = "";//by calling REST web service using RESTtemplate we get blank response.
for(i=0; i < 6; i++) {
if(loginRS.getToken().length > 0)) {
//Got the response exit from thread
break;
}
else {
//Wait for 2 second
Thread.sleep(2000)
}
}
return loginRS;
}
}
자세한 정보가 필요하면 알려주십시오. 감사합니다
오의 동일한 인스턴스를 사용합니다. 그것이 REST의 "규칙"을 직접 위반하는지는 모르겠지만 원칙의 정신을 분명히 위반합니다. (또한 클라이언트가 어딘가에 웹 서비스를 호스트해야합니다. 단지 불쾌합니다.) –