读书人

SSH整合的异常NullPointerException

发布时间: 2012-07-31 12:33:46 作者: rapoo

SSH整合的错误,NullPointerException
SSH整合的一个小例子,struts2+Spring2+Hibernate3
代码如下:
Person.java

Java code
package com.eva.po;/** * Person entity. *  * @author eva  */import java.io.Serializable;public class Person implements Serializable{        private int id;    private String name;    private int age;    private String sex;    private String address;        /** defult constructor */    public Person() {            }    /** minimal constructor */    public Person(String name) {        this.name = name;    }    /** full constructor */    public Person(String name,int age,String sex,String address) {        this.name = name;        this.age = age;        this.sex = sex;        this.address = address;    }         //setter and getter}


PersonDAO.java
Java code
 package com.eva.dao;     import java.util.List;     import com.eva.po.Person;     public interface PersonDAO {       public void saveOrUpdate(Person person);       public void update(Person person);       public void delete(Person person);       public Person get(String id);       public List<Person> findAll();   }  



PersonHibernateDAO.java
Java code
package com.eva.dao.hibernate;     import java.util.List;     import com.eva.dao.PersonDAO;   import com.eva.po.Person;     import org.hibernate.SessionFactory;   import org.springframework.orm.hibernate3.support.HibernateDaoSupport;     public class PersonHibernateDAO extends HibernateDaoSupport implements          PersonDAO {       public void delete(Person person) {           this.getHibernateTemplate().delete(person);       }         public List<Person> findAll() {           List<Person> persons = this.getHibernateTemplate().find("from Person");           return persons;       }         public Person get(String id) {           Person person = (Person)this.getHibernateTemplate().get(Person.class, id);           return person;       }         public void saveOrUpdate(Person person) {           this.getHibernateTemplate().saveOrUpdate(person);       }         public void update(Person person) {           this.getHibernateTemplate().saveOrUpdate(person);       }     }  


PersonService.java
Java code
package com.eva.service;     import java.util.List;     import com.eva.dao.hibernate.PersonHibernateDAO;   import com.eva.po.Person;     public class PersonService {       private PersonHibernateDAO personHibernateDAO;              public void setPersonHibernateDAO(PersonHibernateDAO personHibernateDAO) {           this.personHibernateDAO = personHibernateDAO;           System.out.println("personHibernateDAO is null ? --- " + personHibernateDAO == null);       }              public PersonHibernateDAO getPersonHibernateDAO() {           return personHibernateDAO;       }         public void saveOrUpdate(Person person)       {           personHibernateDAO.saveOrUpdate(person);       }         public void update(Person person)       {           personHibernateDAO.update(person);       }         public void delete(Person person)       {           personHibernateDAO.delete(person);       }         public List<Person> findAll()       {           return personHibernateDAO.findAll();       }         public Person get(String id)       {           return personHibernateDAO.get(id);       }          }  


LoginAction.java

Java code
package com.eva.action;     import java.util.List;     import org.springframework.context.ApplicationContext;   import org.springframework.context.support.ClassPathXmlApplicationContext;   import org.springframework.context.support.FileSystemXmlApplicationContext;     import com.eva.po.Person;   import com.eva.service.PersonService;   import com.opensymphony.xwork2.ActionSupport;     public class LoginAction extends ActionSupport {       private PersonService personService;       private Person person;       private String id;       private List<Person> persons;         public LoginAction() {                  }         public Person getPerson() {           return person;       }         public void setPerson(Person person) {           this.person = person;       }         public String getId() {           return id;       }         public void setId(String id) {           this.id = id;       }         public PersonService getPersonService() {           return personService;       }         public void setPersonService(PersonService personService) {           this.personService = personService;       }         public List<Person> getPersons() {           return persons;       }         public void setPersons(List<Person> persons) {           this.persons = persons;       }         public String execute() throws Exception {           if (person != null & !person.equals("")) {               personService.saveOrUpdate(person);           }           persons = personService.findAll();           setPersons(persons);             System.out.println(persons.size());           return SUCCESS;       }         public String list() throws Exception {           persons = personService.findAll();           setPersons(persons);           return SUCCESS;       }         public String save() throws Exception {;           personService.saveOrUpdate(person);           return SUCCESS;       }         public String update() throws Exception {           person = personService.get(id);           personService.update(person);           return SUCCESS;       }         public String getValue() throws Exception {           return SUCCESS;       }       public String delete() throws Exception{           person = personService.get(id);           personService.delete(person);           return SUCCESS;       }     }


applicationContext.xml
XML code
<?xml version="1.0" encoding="UTF-8"?>   <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xsi:schemaLocation="http://www.springframework.org/schema/beans      http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">              <!-- dataSource配置 -->       <bean id="dataSource"             class="org.apache.commons.dbcp.BasicDataSource">             <property name="driverClassName">               <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>           </property>           <property name="url">               <value>                   jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ssh                </value>           </property>           <property name="username">               <value>sa</value>           </property>           <property name="password">               <value>sa</value>           </property>       </bean>        <!-- 配置session工厂 -->         <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">           <property name="dataSource">               <ref bean="dataSource"/>           </property>              <property name="hibernateProperties">                 <props>                     <prop key="hibernate.dialect">                         org.hibernate.dialect.SQLServerDialect                       </prop>                 </props>             </property>             <property name="mappingResources">                 <list>                     <value>com/eva/po/Person.hbm.xml</value></list>             </property>        </bean>              <!-- 具体的数据库访问类 -->       <bean id="dao" class="com.eva.dao.hibernate.PersonHibernateDAO">           <property name="sessionFactory">               <ref bean="sessionFactory"/>           </property>       </bean>       <!-- 配置具体的业务逻辑类 -->       <bean id="personService" class="com.eva.service.PersonService">           <property name="personHibernateDAO">               <ref bean="dao"/>           </property>       </bean>              <!-- 配置action -->       <bean id="loginAction" class="com.eva.action.LoginAction">           <property name="personService">               <ref bean="personService"/>           </property>       </bean>   </beans>   





[解决办法]
personService未注入
[解决办法]
最好把错误信息贴出来
看样子你的spring都没起作用,web.xml里spring的监听你配置了吗

读书人网 >J2EE开发

热点推荐