// RpcProxy 선언
private RpcProxy<BaseListLoadResult<LoginUserInfo>> proxy;
// RpcProxy 생성
proxy = new RpcProxy<BaseListLoadResult<LoginUserInfo>>() {
public void load(Object loadConfig,
AsyncCallback<BaseListLoadResult<LoginUserInfo>> callback) {
service.getSystemGroupList((BaseListLoadConfig) loadConfig, param, callback);
}
};
2. 그러나 위와 같은 경우 서버쪽에 어떤 문제가 발생하여도 Client쪽에 문제에 대해 알려줄 길이 없다. 이는 기본적으로 Rpc를 통해 서버 메소드를 호출할 경우 아래와 같이 코딩하는데 Proxy의 load메소드내에서는 아래와 같이 코딩하려면 어떻게 해야할 지 알아보자.service.getSystemGroupList((BaseListLoadConfig) loadConfig, param,
new AsyncCallback<BaseListLoadResult<LoginUserInfo>>(){
@Override
public void onFailure(Throwable caught) {
MessageBox.alert("Alert", caught.getMessage(), null);
}
@Override
public void onSuccess(BaseListLoadResult result) {
System.out.prinltn("성공");
}
});
3. 변경된 소스를 보자 new 연산자를 통해 AsyncCallback를 생성하였고 load메소드에서 인자로 받은 callback에게 내부의 onFailure(), onSuccess()메소드의 결과를 알려주도록 변경하였다. 단 load메소드의 AsyncCallback는 final로 변경해야한다.proxy = new RpcProxy<BaseListLoadResult<LoginUserInfo>>() {
public void load(Object loadConfig, final AsyncCallback<BaseListLoadResult<LoginUserInfo>> callback) {
service.getSystemGroupList((BaseListLoadConfig) loadConfig, param,
new AsyncCallback<BaseListLoadResult<LoginUserInfo>>(){
@Override
public void onFailure(Throwable caught) {
// load의 callback인자에게 throw된 에러를 전달해주자.
callback.onFailure(caught);
MessageBox.alert("Alert", caught.getMessage(), null);
}
@Override
public void onSuccess(BaseListLoadResult<LoginUserInfo> result) {
// load의 callback인자에게 결과를 전달해주자.
callback.onSuccess(result);
}
});
}
};
4. 최종 수정된 코드를 실행해보자

아.. 여기서 댓글 다는구나.
답글삭제아.. 기초가 없으니까 강의 따라가기도 벅차네요..
답글삭제계속 막히고...
혹시 강좌 파일을 공개하실 생각 없으신가요..
파일구조같은거라든가.. 보면서 공부하면 좋을꺼 같은데.ㅠ
메일주소를 알려주시면 프로젝트 파일을 보내드리겠습니다.
답글삭제보시고 하나씩 실행해보시면 금방이해가 되실듯 합니다.
아...죄송합니다..이제서 확인했네요.ㅠ
답글삭제보내주신다면 정말 감사합니다..
cmk5600@gmail.com 이구요..
열심히 공부해 보겠습니다..
메일로 파일 보내드렸습니다.
답글삭제확인해보세요^^
rpcproxy부분이 이해가 잘 안가네요..
답글삭제죄송한데...소스를 보내주시면 감사히 보겠습니다.
kojoscap@gmail.com