Hallo,
ich versuche gerade eine Testklasse für meine Hibernate Anwendung zu schreiben. Als Framework setze ich auf Spring und Hibernate. Als IDE nutze ich Netbeans.
Zuerstmal die Testklasse:
Als fehler bekomme ich eine java.lang.NullPointerException für Zeile 34. Also wird nach meinem Verständnis dao nicht automatisch instanziert.
Wie kann ich herausfinden ob er den Context überhaupt sauber anspricht? Wie kann ich sicherstellen das er an den "richtigen" Orten sucht? Sollte man für die Testunits immer eine weitere xml anlegen und spezifisch füllen? Wo würde man diese ablegen?
Danke schonmal im Vorraus!
applicationContext.xml
ich versuche gerade eine Testklasse für meine Hibernate Anwendung zu schreiben. Als Framework setze ich auf Spring und Hibernate. Als IDE nutze ich Netbeans.
Zuerstmal die Testklasse:
Java:
package mrepo.reporting;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
@ContextConfiguration(locations = {"/WEB-INF/dispatcher-servlet.xml", "/WEB-INF/applicationContext.xml"})
public class report_test {
@Autowired
private reportDAO dao;
public void setAdresseDao(reportDAO dao) {
this.dao = dao;
}
@Test
public void TestHibernate() {
report testreport = new report();
testreport.setStrReportname("Testcaste");
testreport.setIntParamPriority(2);
System.out.println(testreport.getStrReportname());
System.out.println(testreport.getIntParamPriority());
System.out.println("Show DAOs Informations");
System.out.println(this.dao.hashCode());
System.out.println(this.dao.getClass());
System.out.println("Try to save now");
// dao.getTicketcount();
// dao.saveRecord(report);
}
}
Als fehler bekomme ich eine java.lang.NullPointerException für Zeile 34. Also wird nach meinem Verständnis dao nicht automatisch instanziert.
Wie kann ich herausfinden ob er den Context überhaupt sauber anspricht? Wie kann ich sicherstellen das er an den "richtigen" Orten sucht? Sollte man für die Testunits immer eine weitere xml anlegen und spezifisch füllen? Wo würde man diese ablegen?
Danke schonmal im Vorraus!
applicationContext.xml
Java:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans [url]http://www.springframework.org/schema/beans/spring-beans-3.0.xsd[/url]
[url=http://www.springframework.org/schema/aop]Index of /schema/aop[/url] [url]http://www.springframework.org/schema/aop/spring-aop-3.0.xsd[/url]
[url=http://www.springframework.org/schema/tx]Index of /schema/tx[/url] http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
<context:annotation-config />
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>net.sourceforge.jtds.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:jtds:sqlserver://servername</value>
</property>
<property name="username">
<value>username</value>
</property>
<property name="password">
<value>password</value>
</property>
</bean>
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource"/>
</property>
<property name="mappingResources">
<list>
<value>/WEB-INF/report.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.HSQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
</props>
</property>
</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
<bean id="reportDAO" class="mrepo.reporting.reportDAOHibernate">
<property name="sessionFactory">
<ref local="sessionFactory"/>
</property>
</bean>
</beans>