自定义Jfinal Quartz插件报错org.quartz.CronScheduleBuilder cannot be cast to [Ljava.lang.Object
因为项目需要动态管理quartz的任务调度,所以参考了http://my.oschina.net/u/147181/blog/664223文章里的内容,自定义了一个quartz的插件类,但是在程序启动的时候,总是提示如下错误:
后来发现即便我把原来quartz插件代码拷贝过来用一样会报错,直接使用jfinal-ext2包中的插件就不会报错,这到底是什么情况啊,郁闷死了,求大神们,帮忙看看。
开发环境:jfinal2.2,jfinal-ext2 2.0.5,quartz 2.2.1
2016-07-07 15:46:27 [ERROR]-[Thread: main]-[com.jfinal.core.Config.startPlugins()]: Plugin start error: apache_app.core.MyQuartzPlugin. org.quartz.CronScheduleBuilder cannot be cast to [Ljava.lang.Object; java.lang.ClassCastException: org.quartz.CronScheduleBuilder cannot be cast to [Ljava.lang.Object; at apache_app.core.MyQuartzPlugin.startJobs(MyQuartzPlugin.java:90) at apache_app.core.MyQuartzPlugin.start(MyQuartzPlugin.java:56) at com.jfinal.core.Config.startPlugins(Config.java:88) at com.jfinal.core.Config.configJFinal(Config.java:49) at com.jfinal.core.JFinal.init(JFinal.java:62) at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49) at org.eclipse.jetty.servlet.FilterHolder.doStart(FilterHolder.java:119) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:64) at org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:724) at org.eclipse.jetty.servlet.ServletContextHandler.startContext(Servl
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
引用来自“JFinal”的评论
用一下cron4j 插件,Cron4jPlugin 代码如下:
ITask 文件内容如下:
使用方法:
1:添加依赖
2:在 YourJFinal 中添加插件
3:在 cron4jConfig.txt 中添加配置
4:让 xxx.com.XxxTask 实现 Runnable 接口,或者ITask 接口也可以,cron 表达式可以精确指定调度规则,记住 cron4j 的cron 表达式只有五部分:分(0-59)、小时(0-23)、天(1-31)、月(1-12)、周(0-6)其中0表示周日,6表示周六
感谢波总的回答,一会儿去试一下。
波总,你这个方案只是让我换一个插件用啊,并没有解决我实际上的困惑。我如果直接使用jfinal-ext2扩展包中quartz插件是完全没有问题,只是在自己写插件的时候报错了,并且就算把扩展包中插件的源码原封不动的拷贝到我自己的类里一样会报错。
回复
你参考写了一个插件,然后报了一个类型转换异常,并没有贴出任何源代码,相当于让回答者蒙上眼猜孕妇肚子里孩子的性别,所以我给出另一个方案来得实际点,你参考这个方案应该 不会出错 ^_^
用一下cron4j 插件,Cron4jPlugin 代码如下:
ITask 文件内容如下:
使用方法:
1:添加依赖
2:在 YourJFinal 中添加插件
3:在 cron4jConfig.txt 中添加配置
4:让 xxx.com.XxxTask 实现 Runnable 接口,或者ITask 接口也可以,cron 表达式可以精确指定调度规则,记住 cron4j 的cron 表达式只有五部分:分(0-59)、小时(0-23)、天(1-31)、月(1-12)、周(0-6)其中0表示周日,6表示周六