b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

odbc连接scan ip_weblogic连接scan ip_weblogic数据源连接池(19)

电脑杂谈  发布时间:2017-01-31 20:11:17  来源:网络整理

CRM中quartz与Spring结合使用

Spring 通过提供org.springframework.scheng.quartz下的封装类对quartz支持

但是目前存在问题

1:Spring3.0目前不支持Quartz2.x以上版本

Caused by: java.lang.IncompatibleClassChangeError: class org.springframework.scheng.quartz.CronTriggerBean

has intece org.quartz.CronTrigger as super class

原因是 org.quartz.CronTrigger在2.0从class变成了一个intece造成IncompatibleClassChangeError错误。

解决:无解,要想使用spring和quartz结合的方式 只能使用Quartz1.x版本。

2:org.springframework.scheng.quartz.MethodInvokingJobDetailFactoryBean报

java.io.NotSerializableException异常,需要自己实现QuartzJobBean。

解决:spring bug己经在找到解决方案,

作者重写了MethodInvokingJobDetailFactoryBean.

3:Spring内bean必须要实现序列化接口,否则不能通过Sprng 属性注入的方式为job提供业务对象

解决:

//使用可序列化工具类获取Spring容器对象
@Service("springBeanService")
public class SpringBeanService implements Serializable{private static final long serialVersionUID = -2228376078979553838L;
	public <T> T getBean(Class<T> clazz,String beanName){
 		ApplicationContext context = ContextLoader.getCurrentWebApplicationContext();
 		return (T)context.getBean(beanName);
	}
}

CRM中quartz模块部分代码

1:定义所有job的父类,并负责异常发送邮件任务和日志任务

public abstract class BaseQuartzJob implements Job, Serializable {
	private static final long serialVersionUID = 3347549365534415931L;
	private Logger logger = LoggerFactory.getLogger(this.getClass());
	
	//定义抽象方法,供子类实现
 	public abstract void action(JobExecutionContext context);
	
	@Override
 	public void execute(JobExecutionContext context) throws JobExecutionException {
 		try {
 			long start = System.currentTimeMillis();
 			this.action(context);
 			long end = System.currentTimeMillis();
 			JobDetail jobDetail = context.getJobDetail();
 			Trigger trigger = context.getTrigger();
 			StringBuilder buffer = new StringBuilder();
 			buffer.append("jobName = ").append(jobDetail.getName()).append(" triggerName = ")
 			.append(trigger.getName()).append(" 执行完成 , 耗时: ").append((end - start)).append(" ms");
 			logger.info(buffer.toString());
 		} catch (Exception e) {
 			doResolveException(context != null ? context.getMergedJobDataMap() : null, e);
 		}
 	}
	@SuppressWarnings("unchecked")
 	private void doResolveException(JobDataMap dataMap, Exception ex) {
 		//发送邮件实现此处省略
 		//...
 	}
}


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29777-19.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 马雪盟
      马雪盟

      毛主席语录

    • 史君丽
      史君丽

      美国的最终目的就是把世界上所有的大国分割成小国

    热点图片
    拼命载入中...