【发布时间】:2014-07-17 06:06:35
【问题描述】:
当我尝试使用自动连线 bean 时出现以下异常(使用 Setter 方法和 XML 配置的依赖注入)
java.lang.NullPointerException
at com.ecms.controller.service.JobCreationServiceCMODImpl.txSaveData(JobCreationServiceCMODImpl.java:483)
at com.ecms.controller.action.CMODJobCreationAction.doSave(CMODJobCreationAction.java:440)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
ezm-application.xml:
<bean>
<bean id="cmodJobCreationDao" class="com.ecms.controller.dao.CMODJobCreationDaoImpl">
<property name="sessionFactory" ref="sessionFactory" />
</bean>
<bean id="jobCreationServiceCMOD" class="com.ecms.controller.service.JobCreationServiceCMODImpl">
<property name="cmodJobCreationDao">
<ref bean="cmodJobCreationDao" />
</property>
</bean>
JobCreationServiceCMODImpl:
public class JobCreationServiceCMODImpl implements JobCreationServiceCMOD{
/**
*
*/
private static final long serialVersionUID = 430594221158425380L;
private static Log log = LogFactory.getLog(JobCreationServiceCMODImpl.class);
private CMODJobCreationDao cmodJobCreationDao;
…..
/**
* @return the cmodJobCreationDao
*/
public CMODJobCreationDao getCmodJobCreationDao() {
return cmodJobCreationDao;
}
/**
* @param cmodJobCreationDao the cmodJobCreationDao to set
*/
public void setCmodJobCreationDao(CMODJobCreationDao cmodJobCreationDao) {
this.cmodJobCreationDao = cmodJobCreationDao;
}
public void txSaveData(JobCreationViewCMOD entity) throws Exception {
JobCreationCMOD creation = new JobCreationCMOD();
creation.setSrcFolder(entity.getSourceFolder());
creation.setSrcApplicationGroup(entity.getApplicationGroup());
creation.setSrcApplication(entity.getApplication());
cmodJobCreationDao.persistObject(creation);
..
CMODJobCreationDaoImpl:
public class CMODJobCreationDaoImpl extends BaseDaoImpl implements CMODJobCreationDao {
static String query = "From JobCreationCMOD Where JOBID=?";
/*
* (non-Javadoc)
* @see com.ecms.controller.dao.ProfileCreationDao#fetchRepParam(java.lang.Integer)
*/
public List<RepositoryParam> fetchRepParams(Integer id) {
return find(query, new Object[] { id });
}
}
【问题讨论】:
-
我猜你的
CMODJobCreationAction构造了一个JobCreationServiceCMODImpl的新实例。使用应用程序上下文中的那个。
标签: spring dependency-injection nullpointerexception