- créer la table "personne" dans postgresql - créer le fichier "database.properties" avec les parametre de la connexion a la BD - créer le fichier "daos.xml" avec la connexion par rapport au parametre dans database.properties - créer la classe Personne dans mon projet - créer la classe PersonneDao dans mon projet - créer le fichier "hibernate.hbm.xml" avec dedans la classe Personne - créer la classe PersonneDaoTest que je test avec JUnit
Le test que je fais c'est dans la classe PersonneDaoTest :
java.lang.NullPointerException at be.one.gra.dao.PersonneDao.getById(PersonneDao.java:26) at test.be.one.gra.dao.PersonneDaoTest.testGetById(PersonneDaoTest.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Process finished with exit code -1
</code>
Dans PersonneDao je fais :
<code>
public Personne getById(Long id) { return (Personne) getHibernateTemplate().get(Personne.class, id); }
Marsh Posté le 08-12-2008 à 16:06:00
Bonjour,
Je travail avec JUnit, Hibernate et postgresql.
Pour tester, j'ai :
- créer la table "personne" dans postgresql
- créer le fichier "database.properties" avec les parametre de la connexion a la BD
- créer le fichier "daos.xml" avec la connexion par rapport au parametre dans database.properties
- créer la classe Personne dans mon projet
- créer la classe PersonneDao dans mon projet
- créer le fichier "hibernate.hbm.xml" avec dedans la classe Personne
- créer la classe PersonneDaoTest que je test avec JUnit
Le test que je fais c'est dans la classe PersonneDaoTest :
<code>
public void testGetById() {
PersonneDao personneDao = new PersonneDao();
Personne personne = personneDao.getById(new Long(1));
System.out.println("personne : " + personne.getNom());
}
</code>
J'ai bien ajouté une personne avec 1 comme ID.
J'ai comme erreur :
<code>
"C:\Program Files\Java\jdk1.6.0_06\bin\java" -Didea.launcher.port=7536 "-Didea.launcher.bin.path=C:\Program Files\JetBrains\IntelliJ IDEA 7.0.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.6.0_06\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\jce.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\resources.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.6.0_06\jre\lib\ext\sunpkcs11.jar;C:\svn\GRA\trunk\out\production\DAO;C:\svn\GRA\trunk\out\production\DataModel;C:\svn\GRA\trunk\Lib\asm.jar;C:\svn\GRA\trunk\Lib\commons-collections.jar;C:\svn\GRA\trunk\Lib\cglib.jar;C:\svn\GRA\trunk\Lib\antlr.jar;C:\svn\GRA\trunk\Lib\hibernate-annotations.jar;C:\svn\GRA\trunk\Lib\commons-logging_1.jar;C:\svn\GRA\trunk\Lib\javaee.jar;C:\svn\GRA\trunk\Lib\commons-logging.jar;C:\svn\GRA\trunk\Lib\commons-pool.jar;C:\svn\GRA\trunk\Lib;C:\svn\GRA\trunk\Lib\hibernate.jar;C:\svn\GRA\trunk\Lib\commons-dbcp.jar;C:\svn\GRA\trunk\Lib\dom4j.jar;C:\svn\GRA\trunk\Lib\spring.jar;C:\Program Files\JetBrains\IntelliJ IDEA 7.0.4\lib\junit.jar;C:\Program Files\JetBrains\IntelliJ IDEA 7.0.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 test.be.one.gra.dao.PersonneDaoTest
java.lang.NullPointerException
at be.one.gra.dao.PersonneDao.getById(PersonneDao.java:26)
at test.be.one.gra.dao.PersonneDaoTest.testGetById(PersonneDaoTest.java:26)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:90)
Process finished with exit code -1
</code>
Dans PersonneDao je fais :
<code>
public Personne getById(Long id) {
return (Personne) getHibernateTemplate().get(Personne.class, id);
}
</code>
Dans daos.xml :
<code>
<bean id="datasource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="org.postgresql.Driver"/>
<property name="url" value="${database-url}"/>
<property name="username" value="${database-user}"/>
<property name="password" value="${database-password}"/>
</bean>
</code>
A mon avis c'est un problème de connexion,
est ce qu'il lit bien le daos.xml ?
Est-ce que quelqu'un sait m'aider?
Merci