2012-01-28 88 views
0
Exception in thread "main" java.lang.NullPointerException 
    at com.hibernate.UserDAO.findAll(UserDAO.java:154) 
    at test.main(test.java:12) 

我在嘗試對我的任何DAO執行任何操作時遇到此錯誤? 在此先感謝!訪問Hibernate時出現NullPointer錯誤DAO

這是我的Spring applicationContext.xml文件中的數據源。

<bean id="dataSource" 
     class="org.apache.commons.dbcp.BasicDataSource"> 
     <property name="driverClassName" 
      value="com.mysql.jdbc.Driver"> 
     </property> 
     <property name="url" 
      value="jdbc:mysql://cs180admin.db.5875115.hostedresource.com:3306/cs180admin"> 
     </property> 
     <property name="username" value="xxxxx"></property> 
     <property name="password" value="xxxxx"></property> 
    </bean> 

Myeclipse連接到數據庫罰款,因爲我能夠反向工程。

我正在使用Test.java來測試拋出錯誤。

import com.hibernate.UserDAO; 


    public class test { 

     public static void main(String[] args) { 
      // TODO Auto-generated method stub 
      UserDAO dao = new UserDAO(); 
      System.out.println(dao.findAll()); 


     } 

    } 

編輯:

UserDAO.java 
    public List findAll() { 
     log.debug("finding all User instances"); 
     try { 
      String queryString = "from User"; 
     Line 154 --> return getHibernateTemplate().find(queryString); 
     } catch (RuntimeException re) { 
      log.error("find all failed", re); 
      throw re; 
     } 
    } 

行沒有被註釋掉,我只是做了箭頭以顯示在錯誤發生。

回答

2

是否可以看到您的UserDAO類的代碼? NPE在154行內觸發,因此問題出在

+0

是的,先生,現在加入 – 2012-01-29 00:15:46

+0

你是否直接通過創建對象調用DAO?據我所知你必須在servlet.xml中爲你的DAO創建一個bean。如果你不這樣做getHibernateTemplate()將返回null。 這是我知道可以觸發此異常的唯一原因,否則,如果getHibernateTemplate()沒有返回null,則應該發佈整個堆棧跟蹤。 – thermz 2012-01-29 00:45:05

+0

我完全忘記了這一點,我在所有J2EE上都生鏽了。我會試試這個。謝謝!!! – 2012-01-29 01:01:02