我有一個RPC服務,在用戶登錄那個。如果用戶名和密碼是有效的,一切都很好。但是,如果用戶名和密碼是無效的,服務器端的代碼似乎運行正常,但回調的onFailure()
方法被觸發。除了onFailure()
方法本身之外,沒有任何錯誤或例外。客戶端出現的異常是通用的「500服務器上的調用失敗;請參閱服務器日誌以獲取詳細信息」GWT RPC失敗,並沒有錯誤,也不例外
我已將所有代碼包裝在try/catch塊中,以確保在運行時不會引發異常。
這裏是有問題的方法:
public OmsConsumer login(String username, String password, String ip) {
OmsUser user = auth.validate(username, password, ip);
OmsConsumer consumer;
if(user.isValid()){
logger.info("User is Valid");
consumer = getConsumerByPersonId(user.getPersonId());
}else {
logger.info("User is INVALID");
consumer = new OmsConsumer();
consumer.setValid(false);
consumer.setErrors(user.getErrors());
logger.info("Errors: " + consumer.getErrors().size());
}
return consumer;
}
同樣,當user.isValid()
返回true,是沒有問題的。當user.isValid()
返回false時纔會觸發onFailure()
。
我難倒就這一個,所以任何調試提示或建議是極大的讚賞!
你去通過在調試模式下服務器端方法? – enrybo 2013-02-12 21:59:50
你看過服務器日誌嗎? – 2013-02-12 22:07:06
如果你顯示的代碼是服務器端,那麼try/catch塊在哪裏? – SSR 2013-02-13 03:30:15