2013-04-06 48 views
1

我創建了一個ExamineeDao通過它們的ID來獲得考生的NullPointerException異常,售票大廳沒有等DAO返回

在我服務的自動裝配一個ExamineeDAo如下

@Autowired 
private ExamineeDao examineeDao; 

我試着一個服務的功能中訪問ExamineeDao作爲

Examinee examinee = examineeDao.findById(id);\\line no 85 in the generateQMH 

在i執行的代碼的服務器顯示錯誤作爲

java.lang.NullPointerException: null 
    at cdac.examination.ccat.service.exam.ExamQuestionsListServiceImpl.generateQMH(ExamQuestionsListServiceImpl.java:85) 
    at cdac.examination.ccat.service.exam.ExamQuestionsListServiceImpl.getQAIPath(ExamQuestionsListServiceImpl.java:48) 

上述異常是由於考生將返回NULL vlaue。

任何人都會告訴我有什麼可能導致這種錯誤以及我需要改變什麼?

+0

如何獲得服務實例? – 2013-04-06 12:28:22

+0

打開Spring的日誌記錄並查看'@ Autowired'正在做什麼。 – 2013-04-06 12:29:35

回答

0

您的彈簧配置可能存在錯誤。如果examineeDaonull,那麼NullPointerException被拋出該線的唯一機會是,因此可能無法正確注入。運行一個調試器,它會顯示你很快。

請注意,ExamineeDao可能無法用於自動裝配,請張貼您的彈簧配置(並註明參加考試的課程)。

+0

這應該是一條評論。沒有答案。 – 2013-04-06 12:49:55

0

在第85行的方法generateQMH中,您的變量具有試圖訪問成員對象的null值。那應該不是null的值。你必須確定爲什麼這個變量是null。這個變量是examineeDao,因爲它只有一個是null並引用了其他成員。這意味着即使您使用自動裝配註釋,它也不會被Spring框架初始化。發生這種情況的可能性很多,可能是spring不能實例化bean,或者它沒有配置,或者你沒有掃描包被連接等等。你沒有告訴我們它是什麼類型的接口或類對於使用彈簧配置代理也是必需的。爲了更好地回答您的問題,請稍後再發布與您的問題相關的必要材料,源代碼,堆棧跟蹤,spring config xml(applicationContext.xml, *-servlet.xml)等。

+0

事實並非如此,OP不會在該行上引用檢索到的對象,因此它是'null'就不會有任何不同。它必須(正如OP正確地指出的那樣)'ExamineeDao'是'null'。如果它是'@ Autowired',OP會詢問_why_。 – 2013-04-06 12:42:39