JAVA 定时任务报错,求解 本帖最后由 wesly2008 于 2014-12-31 22:15:43 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Problem instantiating class 'cn.cs.util.Timers' - java.lang.NoSuchMethodError: org.quartz.SchedulerException: method <init>(Ljava/lang/String;Ljava/lang/Throwable;)V not found没有实现 init()方法 没有实现init?这个是具体代码,要在哪修改呢?package cn.cs.util;import java.math.BigDecimal;import java.sql.Timestamp;import java.text.DecimalFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;import java.util.Locale;import javax.servlet.ServletContext;import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;import org.quartz.JobExecutionContext;import org.quartz.JobExecutionException;import org.springframework.scheduling.quartz.QuartzJobBean;import cn.cs.biz.IAlsoMoneyBiz;import cn.cs.biz.IMembersBiz;import cn.cs.biz.IMoneyRecordsBiz;import cn.cs.biz.IProjectBiz;import cn.cs.entity.AlsoMoney;import cn.cs.entity.Members;import cn.cs.entity.MoneyRecords;import cn.cs.entity.Project;/** * 继承型的spring定时器 * Tips: */public class Timers extends QuartzJobBean{ private IProjectBiz projectBiz; private IAlsoMoneyBiz alsoMoneyBiz; private IMembersBiz membersBiz; private IMoneyRecordsBiz moneyRecordsBiz; HttpServletRequest request = ServletActionContext.getRequest(); ServletContext application = request.getSession().getServletContext(); @Override protected void executeInternal(JobExecutionContext ctx) throws JobExecutionException { /**定时器执行开始**/ updateProTime(); refunds(); updateProStatus(); clearStatus(); /**定时器执行结束**/ } /** * 修改所有日期 */ @SuppressWarnings("deprecation") private void updateProTime(){ List<Project> pros=projectBiz.findAll(1,null,null,null,null,null,null,null); Date start=new Date(); start.setHours(0);start.setMinutes(0);start.setSeconds(0);start.setDate(start.getDate()+1); for (Project project : pros) { Date endtime=new Date(start.getTime()); endtime.setMonth(endtime.getMonth()+project.getTimeLimit()); projectBiz.updateTime(project.getId(),start,endtime); } } private void refunds(){ Date now=new Date(); now.setHours(0);now.setMinutes(0);now.setSeconds(0); List<AlsoMoney> ams=alsoMoneyBiz.findAll(now);//当天所有未还明细 for (AlsoMoney alsoMoney : ams) { Members user=membersBiz.findById(alsoMoney.getMembers().getId());//重载会员对象 BigDecimal ava=user.getAvailable(); BigDecimal freeze=user.getFreeze(); ava.add(alsoMoney.getInterest());//收益 MoneyRecords mrecord=new MoneyRecords();//交易记录 mrecord.setAvailable(ava); mrecord.setBalance(user.getAmount()); mrecord.setCtime(new Timestamp(new Date().getTime())); mrecord.setFreeze(freeze); mrecord.setIncome(alsoMoney.getInterest()); mrecord.setIntro("投资利息"); mrecord.setMembers(user); mrecord.setSpending(new BigDecimal(0)); mrecord.setTradNum(generate()); mrecord.setTradType(4);//4.结息 MoneyRecords precord=null;//本金交易记录 if(alsoMoney.getPrincipal().intValue()!=0){//判断是否为最后一期 freeze.subtract(alsoMoney.getPrincipal()); ava.add(alsoMoney.getPrincipal()); precord=new MoneyRecords(); precord.setBalance(user.getAmount()); precord.setCtime(new Timestamp(new Date().getTime())); precord.setFreeze(freeze); precord.setIncome(alsoMoney.getPrincipal()); precord.setIntro("本金归还"); precord.setMembers(user); precord.setSpending(new BigDecimal(0)); precord.setTradNum(generate()); precord.setTradType(5);//5.回收本金 } boolean result=membersBiz.updateMF(user.getId(),ava,freeze);//用户资金修改 if(result){ moneyRecordsBiz.addRecord(mrecord);//添加交易记录 if(precord!=null){ moneyRecordsBiz.addRecord(precord); } result=alsoMoneyBiz.updateStatus(alsoMoney.getId(), 2); } } } private void updateProStatus(){ Date now=new Date(); now.setHours(0);now.setMinutes(0);now.setSeconds(0); List<Project> pros=projectBiz.findAll(now); for (Project project : pros) { projectBiz.updateStatus(project.getId(), 3); } } private void clearStatus(){ application.setAttribute("TradNum","1"); application.setAttribute("ContractNum","1"); application.setAttribute("BrNum","1"); application.setAttribute("ProNum","1"); } private String generate(){ Integer nums=(Integer) application.getAttribute("TradNum"); if(nums==null){ nums=1; } Locale.setDefault(Locale.GERMAN); DecimalFormat df=new DecimalFormat("00000"); String sort=df.format(nums); SimpleDateFormat df2=new SimpleDateFormat("yyyyMMdd"); String time=df2.format(new Date()); String trabNums="JY"+time+sort; nums++; application.setAttribute("TradNum",nums); return trabNums; } /*************************************************************/ public IProjectBiz getProjectBiz() { return projectBiz; } public void setProjectBiz(IProjectBiz projectBiz) { this.projectBiz = projectBiz; } public IAlsoMoneyBiz getAlsoMoneyBiz() { return alsoMoneyBiz; } public void setAlsoMoneyBiz(IAlsoMoneyBiz alsoMoneyBiz) { this.alsoMoneyBiz = alsoMoneyBiz; } public IMembersBiz getMembersBiz() { return membersBiz; } public void setMembersBiz(IMembersBiz membersBiz) { this.membersBiz = membersBiz; } public IMoneyRecordsBiz getMoneyRecordsBiz() { return moneyRecordsBiz; } public void setMoneyRecordsBiz(IMoneyRecordsBiz moneyRecordsBiz) { this.moneyRecordsBiz = moneyRecordsBiz; } } tomcat iis整合的问题,帮顶给分,有好方法加分~~~~~ java 字符串公式 实习 javaEE程序员应该注意什么? 各位大大给点经验~ 用hibernate视图映射做分页查询的问题,急。。 请求大侠关于webserivces报错的问题! ActionForm的validate方法 webwork参数传递问题? java web 调用本地程序,有什么好办法嘛? tomcat集成iis,图片不显示?? java 动态菜单怎么做?? struts2 返回json对象一直得不到数据 求大神帮忙,解决一个困扰我很久的问题,在这谢谢了
这个是具体代码,要在哪修改呢?
package cn.cs.util;import java.math.BigDecimal;
import java.sql.Timestamp;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Locale;import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;import org.apache.struts2.ServletActionContext;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;import cn.cs.biz.IAlsoMoneyBiz;
import cn.cs.biz.IMembersBiz;
import cn.cs.biz.IMoneyRecordsBiz;
import cn.cs.biz.IProjectBiz;
import cn.cs.entity.AlsoMoney;
import cn.cs.entity.Members;
import cn.cs.entity.MoneyRecords;
import cn.cs.entity.Project;/**
* 继承型的spring定时器
* Tips:
*/
public class Timers extends QuartzJobBean{
private IProjectBiz projectBiz;
private IAlsoMoneyBiz alsoMoneyBiz;
private IMembersBiz membersBiz;
private IMoneyRecordsBiz moneyRecordsBiz;
HttpServletRequest request = ServletActionContext.getRequest();
ServletContext application = request.getSession().getServletContext();
@Override
protected void executeInternal(JobExecutionContext ctx)
throws JobExecutionException {
/**定时器执行开始**/
updateProTime();
refunds();
updateProStatus();
clearStatus();
/**定时器执行结束**/
}
/**
* 修改所有日期
*/
@SuppressWarnings("deprecation")
private void updateProTime(){
List<Project> pros=projectBiz.findAll(1,null,null,null,null,null,null,null);
Date start=new Date();
start.setHours(0);start.setMinutes(0);start.setSeconds(0);start.setDate(start.getDate()+1);
for (Project project : pros) {
Date endtime=new Date(start.getTime());
endtime.setMonth(endtime.getMonth()+project.getTimeLimit());
projectBiz.updateTime(project.getId(),start,endtime);
}
} private void refunds(){
Date now=new Date();
now.setHours(0);now.setMinutes(0);now.setSeconds(0);
List<AlsoMoney> ams=alsoMoneyBiz.findAll(now);//当天所有未还明细
for (AlsoMoney alsoMoney : ams) {
Members user=membersBiz.findById(alsoMoney.getMembers().getId());//重载会员对象
BigDecimal ava=user.getAvailable();
BigDecimal freeze=user.getFreeze();
ava.add(alsoMoney.getInterest());//收益
MoneyRecords mrecord=new MoneyRecords();//交易记录
mrecord.setAvailable(ava);
mrecord.setBalance(user.getAmount());
mrecord.setCtime(new Timestamp(new Date().getTime()));
mrecord.setFreeze(freeze);
mrecord.setIncome(alsoMoney.getInterest());
mrecord.setIntro("投资利息");
mrecord.setMembers(user);
mrecord.setSpending(new BigDecimal(0));
mrecord.setTradNum(generate());
mrecord.setTradType(4);//4.结息
MoneyRecords precord=null;//本金交易记录
if(alsoMoney.getPrincipal().intValue()!=0){//判断是否为最后一期
freeze.subtract(alsoMoney.getPrincipal());
ava.add(alsoMoney.getPrincipal());
precord=new MoneyRecords();
precord.setBalance(user.getAmount());
precord.setCtime(new Timestamp(new Date().getTime()));
precord.setFreeze(freeze);
precord.setIncome(alsoMoney.getPrincipal());
precord.setIntro("本金归还");
precord.setMembers(user);
precord.setSpending(new BigDecimal(0));
precord.setTradNum(generate());
precord.setTradType(5);//5.回收本金
}
boolean result=membersBiz.updateMF(user.getId(),ava,freeze);//用户资金修改
if(result){
moneyRecordsBiz.addRecord(mrecord);//添加交易记录
if(precord!=null){
moneyRecordsBiz.addRecord(precord);
}
result=alsoMoneyBiz.updateStatus(alsoMoney.getId(), 2);
}
}
} private void updateProStatus(){
Date now=new Date();
now.setHours(0);now.setMinutes(0);now.setSeconds(0);
List<Project> pros=projectBiz.findAll(now);
for (Project project : pros) {
projectBiz.updateStatus(project.getId(), 3);
}
} private void clearStatus(){
application.setAttribute("TradNum","1");
application.setAttribute("ContractNum","1");
application.setAttribute("BrNum","1");
application.setAttribute("ProNum","1");
} private String generate(){
Integer nums=(Integer) application.getAttribute("TradNum");
if(nums==null){
nums=1;
}
Locale.setDefault(Locale.GERMAN);
DecimalFormat df=new DecimalFormat("00000");
String sort=df.format(nums);
SimpleDateFormat df2=new SimpleDateFormat("yyyyMMdd");
String time=df2.format(new Date());
String trabNums="JY"+time+sort;
nums++;
application.setAttribute("TradNum",nums);
return trabNums;
}
/*************************************************************/
public IProjectBiz getProjectBiz() {
return projectBiz;
}
public void setProjectBiz(IProjectBiz projectBiz) {
this.projectBiz = projectBiz;
}
public IAlsoMoneyBiz getAlsoMoneyBiz() {
return alsoMoneyBiz;
}
public void setAlsoMoneyBiz(IAlsoMoneyBiz alsoMoneyBiz) {
this.alsoMoneyBiz = alsoMoneyBiz;
}
public IMembersBiz getMembersBiz() {
return membersBiz;
}
public void setMembersBiz(IMembersBiz membersBiz) {
this.membersBiz = membersBiz;
}
public IMoneyRecordsBiz getMoneyRecordsBiz() {
return moneyRecordsBiz;
}
public void setMoneyRecordsBiz(IMoneyRecordsBiz moneyRecordsBiz) {
this.moneyRecordsBiz = moneyRecordsBiz;
}
}