[英]Java Restful Web Service Login Credential Failure
因此,我建立了一個Java Web服務來連接到我正在開發的移動android應用程序。 我是Java和Android的新手,但遇到了一些困難。 我已經將Android的登錄詳細信息發送到Restful Web Service,但是Restful Web Service在嘗試驗證為用戶創建的數據庫表中的詳細信息時會失敗。 我知道這是支票憑證問題,因為當我注釋掉支票憑證聲明時,它將讓我登錄。 我無法弄清楚我的代碼中的憑證驗證語句出了什么問題,有人可以幫忙,那會很棒。 我的Restful服務的Login.class在下面。 我也正在運行所有的tomcat7。
private boolean checkCredentials(String uname, String pwd){
System.out.println("Inside checkCredentials");
boolean result = false;
if(Utitlity.isNotNull(uname) && Utitlity.isNotNull(pwd)){
try {
result = DBConnection.checkLogin(uname, pwd);
// System.out.println("Inside checkCredentials try "+result);
} catch (Exception e) {
// TODO Auto-generated catch block
// System.out.println("Inside checkCredentials catch");
result = false;
}
}else{
System.out.println("Inside checkCredentials else");
result = false;
}
return result;
}
您的代碼有幾個問題。 主要的問題是,您可以將處理在checkLogin()
拋出的所有異常作為常規的“未檢出”情況處理。
您是否真的想靜默地忽略任何系統故障,並像有效的業務案例一樣處理它?
我並不是說這在每種情況下都是錯誤的,而是要做出明確的設計決策,並且至少記錄一些有關異常的信息,以便您可以看到錯誤之處。
更好的是,將限制條款限制為您真正希望引發的異常。 (即使那樣,也請記錄有關異常的信息!)
諸如DBConnection.checkLogin()
類的靜態方法的使用表明了更多的設計問題。 它可能會起作用,並且在某些情況下會很方便,但是從長遠來看,它會咬住您。
因此,要查找您的緊迫問題:在catch子句中打印Exception的堆棧跟蹤。 還要在調用之后立即在try塊中記錄checkLogin()
調用的結果。 如果打印了該信息,則不會引發Exception,並且您的問題出在checkLogin()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.