UDN-企业互联网技术人气社区

板块导航

浏览  : 796
回复  : 3

JAVA 定时任务报错,求解

[复制链接]
wesly2008的头像 楼主
发表于 2014-12-31 22:13:59 | 显示全部楼层 |阅读模式
错误内容:
[ERROR] 2014-12-31 22:02:00,010(19797) --> [org.springframework.scheduling.quartz.SchedulerFactoryBean#0_QuartzSchedulerThread] org.quartz.core.ErrorLogger.schedulerError(QuartzScheduler.java:2015): An error occured instantiating job to be executed. job= 'DEFAULT.job'  
org.quartz.SchedulerException: Problem instantiating class 'cn.cs.util.Timers' - java.lang.NoSuchMethodError: org.quartz.SchedulerException: method (Ljava/lang/String;Ljava/lang/Throwable;)V not found
        at org.quartz.core.JobRunShell.initialize(JobRunShell.java:148)
        at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:353)

----------------------------------
applicationContext.xml 配置如下:


       
       
       
            
       
       
       
       
       
       
               
               
               
               
               
               
                  
               
               
               
               
               
               
               
                 
               
                 -->
       

       
               
                       
               
               
                       
                                org.hibernate.dialect.MySQLDialect
                               
                       
               
                 
               
                       
                                cn.cs.entity.AlsoMoney
                                cn.cs.entity.BankCard
                                cn.cs.entity.BankCardId
                                cn.cs.entity.BidRecords
                                cn.cs.entity.Certification
                                cn.cs.entity.Credit
                                cn.cs.entity.Employees
                                cn.cs.entity.Feedback
                                cn.cs.entity.Guarantee
                                cn.cs.entity.LoginRecords
                                cn.cs.entity.Members
                                cn.cs.entity.MemMoney
                                cn.cs.entity.MemRecords
                                cn.cs.entity.MoneyRecords
                                cn.cs.entity.Mortgage
                                cn.cs.entity.Permissions
                                cn.cs.entity.Project
                                cn.cs.entity.RewardRecords
                                cn.cs.entity.SemConfig
                                cn.cs.entity.SemPages
                                cn.cs.entity.Slides
                                cn.cs.entity.WebLink
                                cn.cs.entity.WebMsg
                                cn.cs.entity.Withdrawal
                                cn.cs.entity.WebHelp
                                cn.cs.entity.Contract
                                cn.cs.entity.EmploRecords
                       
               

       
       
     
         cn.cs.util.Timers
     
     
         
            0
                       
                       
                       
                       
         
     
       

       
       
     
         
     
     
     0 02 22 * * ?
     
       

       
       
     
         
            
         
     
       


       
               
       

       
       

               

                       
                       
                       
                       
                       
               
       
         
         
                
                
         
发表于 2015-1-3 16:30:05 | 显示全部楼层
Problem instantiating class 'cn.cs.util.Timers' - java.lang.NoSuchMethodError: org.quartz.SchedulerException: method [i](Ljava/lang/String;Ljava/lang/Throwable;)V not found

没有实现 init()方法
        
使用道具 举报

回复

wesly2008的头像 楼主
发表于 2015-1-4 19:57:12 | 显示全部楼层
没有实现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 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 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 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;
        }
       
}
使用道具 举报

回复

发表于 2016-12-19 09:48:03 | 显示全部楼层
请问楼主问题解决了吗
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部