【发布时间】:2013-03-24 23:07:24
【问题描述】:
每次尝试将数据插入数据库时,我都会得到 NPE(空指针异常)。帮我解决这个问题。我已经导入了 spring 所需的所有必要库。 这是我配置所有 bean 的 applicationContext.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"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="personService" class="com.ecommerce.assignment.service.PersonService">
<property name="personDAO" ref="personDAO" />
</bean>
<bean id="personBean" class="com.ecommerce.assignment.bean.PersonBean" />
<bean id="personDAO" class="com.ecommerce.assignment.dao.PersonDAO" />
</beans>
这是person DAO的界面。
public interface IPersonDAO {
public void addPerson(Person instance);
}
此 personDAO 类实现了 IpersonDAO 接口及其未实现的方法。
public class PersonDAO implements IPersonDAO {
@Override
public void addPerson(Person instance) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction().begin();
session.saveOrUpdate(instance);
session.getTransaction().commit();
session.close();
}
}
这是接口personService。 公共接口 IPersonService { public void addPerson(Person instance); }
public class PersonService implements IPersonService,Serializable {
private IPersonDAO personDAO;
public IPersonDAO getPersonDAO() {
return personDAO;
}
public void setPersonDAO(IPersonDAO personDAO) {
this.personDAO = personDAO;
}
@Override
public void addPerson(Person instance) {
getPersonDAO().addPerson(instance);
}
}
public class PersonBean implements Serializable {
private static final long serialVersionUID = 1L;
private String emailAddress;
private String password;
private String username;
@ManagedProperty(value = "#{personService}")
private IPersonService iPersonService;
public void addPerson(){
try{
Person person = new Person();
person.setUsername(getUsername());
person.setEmailAddress(getEmailAddress());
person.setPassword(getPassword());
iPersonService.addPerson(person);
}
catch(Exception ex){
ex.printStackTrace();
}
}
}
【问题讨论】:
-
你忘了告诉
null到底是什么变量。请相应地更新问题。或者您的具体问题是您不了解NullPointerException的含义? -
@BalusC,提供 NPE 的是 iPersonService。
标签: spring jsf-2 dependency-injection