2013-03-19 35 views
0

下面是我的代碼,它在執行時給出一個空指針異常。請幫我解決這個問題:在Java中的Restful webservices幫助

@POST 
@GET 
@Path("/Auth/{uname}") 
public String checkUserAccess(@PathParam("uname") String username) { 
    String message = svc.checkUserAccess(username); 
    return message; 
} 

服務接口:

public String checkUserAccess(String id); 

服務實現:

public String checkUserAccess(String id) { 
    String message = Dao.checkUserAccess(id); 
    return message; 
} 

DAO接口:

public String checkUserAccess(String id); 

DAO實現:

public String checkUserAccess(String id) { 
    String result = null; 
    String user = propertyProvider.getProperty("Auth"); 
    if (user.equalsIgnoreCase(id)) 
     result = "Valid User"; 
    else 
     result = "Invalid User"; 
    return result; 
} 
+0

您的代碼應該是問題的一部分,而不是評論。 – Yourpalal 2013-03-19 17:36:44

+0

只需調試代碼。解決這個問題不應該是個問題。順便說一下,用'@POST'和'@GET'註解相同的方法並不是一個好習慣。也許一些JAX-RS實現會導致問題。 – emd 2013-03-19 19:14:20

回答

0

我猜的代碼,你在哪裏財產提供商造成NullPointerException讓用戶的線。即

String user = propertyProvider.getProperty("Auth"); 

我想你得到的用戶爲null。所以if(user.equalsIgnoreCase(id))投擲NullPointerException。在驗證用戶之前進行空檢查。

if(user!=null && user.equalsIgnoreCase(id)) { 
    result = "Valid User"; 
else 
    result = "Invalid User"; 
return result; } 
+0

沒有運氣仍然得到空指針異常 – Kali 2013-03-19 17:49:22

+0

您可以請張貼堆棧跟蹤?編輯您的問題併發布。 – 2013-03-19 17:51:44

+0

你從哪裏獲得propertyProvider?檢查它是否爲空。 – 2013-03-19 17:52:25