after executing this application i got HibernateTemplate reference as null but all beans are pre-instantiated properly. whr shuld i change the code,, please help me regarding this,, when i run same application from console based test case(Main method den it works fyn) bt from Controller class when i call DAO method den java.lang.NullPointerException occurs.
org.springframework.web.util.NestedServletExceptio n: Request processing failed; nested exception is java.lang.NullPointerException
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:659)
org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:563)
javax.servlet.http.HttpServlet.service(HttpServlet .java:641)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
root cause
java.lang.NullPointerException
com.netsol.dao.UserDAOImpl.addUser(UserDAOImpl.jav a:20)
com.netsol.web.UserController.onSubmit(UserControl ler.java:41)
sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.web.bind.annotation.support.Ha ndlerMethodInvoker.doInvokeMethod(HandlerMethodInv oker.java:710)
org.springframework.web.bind.annotation.support.Ha ndlerMethodInvoker.invokeHandlerMethod(HandlerMeth odInvoker.java:167)
org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.invokeHandlerMethod(An notationMethodHandlerAdapter.java:414)
org.springframework.web.servlet.mvc.annotation.Ann otationMethodHandlerAdapter.handle(AnnotationMetho dHandlerAdapter.java:402)
org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:771)
org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:716)
org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:647)
org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:563)
javax.servlet.http.HttpServlet.service(HttpServlet .java:641)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
Below is the spring config file and DAO class
dispatcher-servlet.xml
<?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:context="http://www.springframework.org/schema/context"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schem...ring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<bean id="viewResolver"
class="org.springframework.web.servlet.view.Intern alResourceViewResolver"
p:prefix="/WEB-INF/jsp/" p:suffix=".jsp" />
<context:component-scan base-package="com.netsol" />
<!-- <jee:jndi-lookup id="myDataSource" jndi-name="java:comp/env/jdbc/globalDataSource" /> -->
<bean id="myDataSource" class="org.springframework.jndi.JndiObjectFactoryB ean">
<property name="jndiName" value="java:comp/env/jdbc/myGlobalDataSource"/>
<property name="resourceRef" value="true" />
</bean>
<!-- <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://192.168.0.240:3306/demo"/>
<property name="username" value="java"/>
<property name="password" value="JavA_123#"/>
</bean> -->
<bean id="mySessionFactory" class="org.springframework.orm.hibernate3.annotati on.AnnotationSessionFactoryBean">
<property name="dataSource" ref="myDataSource"/>
<property name="annotatedClasses">
<list>
<value>com.netsol.domain.User</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQ LDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">createOrUpdate</prop>
</props>
</property>
</bean>
<bean id="ud" class="com.netsol.dao.UserDAOImpl">
<property name="sessionFactory" ref="mySessionFactory" />
</bean>
</beans>
DAO class:
package com.netsol.dao;
import java.util.List;
import org.hibernate.Query;
import org.springframework.orm.hibernate3.HibernateTempla te;
import org.springframework.orm.hibernate3.support.Hiberna teDaoSupport;
import com.netsol.domain.User;
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
HibernateTemplate hibernateTemplate;
public UserDAOImpl(){
System.out.println("-----------UserDAOImpl");
}
public boolean addUser(User user){
boolean flag=false;
String s=null;
HibernateTemplate ht=getHibernateTemplate();
ht.save(user).toString();
System.out.println("long value"+s);
if(s!=null)
flag=true;
else
flag=false;
return flag;
}
public User getUser(String keyName){
User user=(User)getHibernateTemplate().get(User.class, keyName);
return user;
}
public List<User> getBulkUsers(){
String queryString="FROM User";
List<User> l=getHibernateTemplate().find(queryString);
return l;
}
public void updateUser(String password,String name){
Query query = this.getSession().createQuery("update User set password= ? where name=?");
query.setParameter(0, password+"%");
query.setParameter(1, name);
int result = query.executeUpdate();
System.out.println("Update User "+result);
}
}
