当前位置:编程学习 > JAVA >>

求指教,SSH项目里怎么搭建Quartz呢?

RT

正在做这个学期的毕业项目,有个功能是每隔一个星期就自动查询一张表的记录,然后输出。

我单纯用Java项目不搭建SSH框架的时候会做个简单的demo。

可是当我搭建了SSH框架之后,部署在tomcat上了,启动tomcat就报错,百度了一天了也没找出个解决方法。

希望有大神帮忙帮忙解决一下,有个例子也可以。

谢谢。
--------------------编程问答-------------------- 在Spring里面配置自动调度任务应该比较容易。 --------------------编程问答-------------------- 是在Spring里管理的。。。问题是,我这个项目是需要访问数据库的,数据源和会话工厂,业务层与数据访问层之间需要依赖注入。 --------------------编程问答-------------------- 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>
有点乱。 --------------------编程问答--------------------
引用 3 楼 u011540494 的回复:
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>
有点乱。

我先试试。谢谢 --------------------编程问答--------------------
引用 3 楼 u011540494 的回复:
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>
有点乱。




+1 --------------------编程问答-------------------- 我有定时任务的例子
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,