我在我的 JSP Struts/Hibernate 应用程序的不同 java 文件中加入了石英调度程序。我的执行方法如下所示:
public void execute(JobExecutionContext jExeCtx) throws JobExecutionException {
try {
userDetailManager = new UserDetailManagerImpl();
userDetailManager.sendMailTxnDetailsEveryNight();
} catch (ApplicationException ex) {
java.util.logging.Logger.getLogger(JobClass.class.getName()).log(Level.SEVERE, null, ex);
}
}
然后我调用 sendMailTxnDetailsEveryNight 方法,看起来像:
public void sendMailTxnDetailsEveryNight() throws ApplicationException{
List<RemittanceTransactionBean> rBean = remittanceTransactionDao.getTodayTxnSummary();
return rBean;
}
我在给定点收到 nullpointerException :
java.lang.NullPointerException
at com.mtmrs.business.user.impl.UserDetailManagerImpl.sendMailTxnDetailsEveryNight(UserDetailManagerImpl.java:754)
at com.mtmrs.util.common.JobClass.execute(JobClass.java:44)
我需要如何调用 getTodayTxnSummary(); 这样我就不会收到任何错误。我也在 applicationContext 中定义了 remittanceTransactionDao:
<bean id="userDetailManager" parent="abstractTxDefinition">
<property name="target">
<bean class="com.mtmrs.business.user.impl.UserDetailManagerImpl">
<property name="remittanceTransactionDao" ref="remittanceTransactionDao"></property>
</bean>
</property>
</bean>
我调试了一下,remittanceTransactionDao 为空。在调用方法 remittanceTransactionDao 之前,我还尝试了以下设置。这样,在 sendMailTxnDetailsEveryNight 中使用的会话变量为空。我被困在这里。
remittanceTransactionDao = new RemittanceTransactionDaoHibernate(RemittanceTransaction.class);