RT正在做这个学期的毕业项目,有个功能是每隔一个星期就自动查询一张表的记录,然后输出。我单纯用Java项目不搭建SSH框架的时候会做个简单的demo。可是当我搭建了SSH框架之后,部署在tomcat上了,启动tomcat就报错,百度了一天了也没找出个解决方法。希望有大神帮忙帮忙解决一下,有个例子也可以。谢谢。

解决方案 »

  1.   

    在Spring里面配置自动调度任务应该比较容易。
      

  2.   

    是在Spring里管理的问题是,我这个项目是需要访问数据库的,数据源和会话工厂,业务层与数据访问层之间需要依赖注入。
      

  3.   

    public class EmpManagerImpl 
    {
    private ApplicationDao appDao;
    private AttendDao attendDao;
    private AttendTypeDao typeDao;
    private CheckBackDao checkDao;
    private EmployeeDao empDao;
    private ManagerDao mgrDao;
    private PaymentDao payDao;
    }public class PayJob
    extends QuartzJobBean 
    {
    //判断作业是否执行的旗标
    private boolean isRunning = false;
    //该作业类所依赖的业务逻辑组件
    private EmpManager empMgr;
    public void setEmpMgr(EmpManager empMgr)
    {
    this.empMgr = empMgr;
    }
    //定义任务执行体
    public void executeInternal(JobExecutionContext ctx) 
    throws JobExecutionException 
    {
    if (!isRunning)
    {
    System.out.println("开始调度自动结算工资");
    isRunning = true;
    //调用业务逻辑方法
    empMgr.autoPay();
    isRunning = false;
    }
    }
    }<bean id="managerTemplate" abstract="true" lazy-init="true" 
    p:payDao-ref="payDao"/><bean id="empManager"
    class="org.crazyit.hrsystem.service.impl.EmpManagerImpl"
    parent="managerTemplate"/><bean id="cronTriggerPay" 
    class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail">
    <!-- 使用嵌套Bean的方式来定义任务Bean -->
    <bean 
    class="org.springframework.scheduling.quartz.JobDetailBean">
    <!-- 指定任务Bean的实现类 -->
    <property name="jobClass"
    value="org.crazyit.hrsystem.schedule.PayJob"/>
    <!-- 为任务Bean注入属性 -->
    <property name="jobDataAsMap">
    <map>
    <entry key="empMgr" value-ref="empManager"/>
    </map>
    </property>
    </bean>
    </property>
    <!-- 指定Cron表达式:每月3日2时启动 -->
    <property name="cronExpression" value="0 0 2 3 * ? *"/>
    </bean><bean 
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
    <property name="triggers">
    <list>
    <ref local="cronTriggerPay"/>
    </list>
    </property>
    </bean>
    有点乱。