JFinal中使用QuartzPlugin报ClassCastException解决方法
JDK1.8中泛型反射修改对旧版本的影响
本文地址:http://blog.csdn.net/sushengmiyan
本文作者:苏生米沿
问题复现环境:
JDK1.8
JFinal1.9
quartz2.2.1
启动环境可参考如下文章内容: https://my.oschina.net/u/147181/blog/664223
问题描述
JFinal配置好quartz的插件类后,启动报错。报错信息如下:
[ERROR]-[com.jfinal.core.Config.startPlugins()]: Plugin start error: com.jfinal.ext.plugin.quartz.QuartzPlugin.
org.quartz.CronScheduleBuilder cannot be cast to [Ljava.lang.Object;
java.lang.ClassCastException: org.quartz.CronScheduleBuilder cannot be cast to [Ljava.lang.Object;
at com.jfinal.ext.plugin.quartz.QuartzPlugin.startJobs(QuartzPlugin.java:97)
at com.jfinal.ext.plugin.quartz.QuartzPlugin.start(QuartzPlugin.java:64)
at com.jfinal.core.Config.startPlugins(Config.java:87)
at com.jfinal.core.Config.configJFinal(Config.java:48)
at com.jfinal.core.JFinal.init(JFinal.java:67)
at com.jfinal.core.JFinalFilter.init(JFinalFilter.java:49)
at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:279)
错误定位
temp=Reflect.on(temp).call(“withSchedule”,Reflect.on(“org.quartz.CronScheduleBuilder”).call(“cronSchedule”, jobCronExp).get()).get();
程序在此处抛出异常。
解决方式
将上述报错语句改为如下两句。
CronScheduleBuilder csb = Reflect.on("org.quartz.CronScheduleBuilder").call("cronSchedule", jobCronExp).get();
temp = Reflect.on(temp).call("withSchedule",csb).get();
再次启动程序,不再报错。
错误来源:
JDK1.8对泛型的校验加强,此处插件使用的反射的方式来获取CronTrigger 在构造中需要一个CronScheduleBuilder类型的创建器,当按照错误定位的那句来写的时候,反射返回的类型是Object而TriggerBuilder的方法中需要的参数是一个泛型的CronScheduleBuilder类型。泛型检查报错ClassCastException。
扩展阅读:
以上来源-JDK8在泛型类型推导上的变化:
http://lovestblog.cn/blog/2016/04/03/type-inference/
目录
JFinal中使用QuartzPlugin报ClassCastException解决方法的更多相关文章
- .vue文件在webstorm中es6语法报错解决方法
1 语法支持es6设置 Preferences > Languages & Frameworks > JavaScript 把 Javascript Language versio ...
- @Data注解使用后在eclipse中get/set报错解决方法
Maven项目中已经导入相关的lombok.jar包但是使用后仍提示无set/get方法 安装完成之后,请确认eclipse安装路径下是否多了一个lombok.jar包,并且其 配置文件eclipse ...
- java开发中遇到的问题及解决方法(持续更新)
摘自 http://blog.csdn.net/pony12/article/details/38456261 java开发中遇到的问题及解决方法(持续更新) 工作中,以C/C++开发为主,难免与其他 ...
- SpringBoot拦截器中无法注入bean的解决方法
SpringBoot拦截器中无法注入bean的解决方法 在使用springboot的拦截器时,有时候希望在拦截器中注入bean方便使用 但是如果直接注入会发现无法注入而报空指针异常 解决方法: 在注册 ...
- Loadrunner参数化逗号报错解决方法
Loadrunner参数化逗号报错解决方法 介绍Loadrunner参数化时,参数中包含有逗号时出错的解决方法. 在Loadrunner进行参数化时,参数中如果含有逗号,编辑保存后会报错: 此 ...
- Android Studio support 26.0.0-alpha1 Failed to resolve: com.android.support:appcompat-v7:27.+ 报错解决方法
AS下如何生成自定义的.jks签名文件, 以及如何生成数字签名 链接:http://www.cnblogs.com/smyhvae/p/4456420.html 链接:http://blog.csdn ...
- 国内不fq安装K8S四: 安装过程中遇到的问题和解决方法
目录 4 安装过程中遇到的问题和解决方法 4.1 常见问题 4.2 常用的操作命令 4.3 比较好的博客 国内不fq安装K8S一: 安装docker 国内不fq安装K8S二: 安装kubernet 国 ...
- django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法
django.db.utils.InternalError: (1060, "Duplicate column name 'user_id'")迁移报错解决方法 django.db ...
- SpringCloud:eureka的'eurekaAutoServiceRegistration'报错解决方法
报错信息如下: org.springframework.beans.factory.BeanCreationNotAllowedException: Error creating bean with ...
随机推荐
- poj1182-食物链-带权并查集-种类并查集
(这应该是我写的第一个和带权并查集相关的题,还不是很了解,所以这篇博客我以后还会做修改,力求更号理解! 题意和思路: 中文题意,我简单提一下: A->B,B->C,C->A.A吃B, ...
- eclipse 复制原项目工作空间
eclipse 复制原项目工作空间 具体步骤: 1.首先把你需要升级的eclipse 下载并解压 2.解压好后,右击 3.进入后你能看到这样一个页面 4.我的安装路径D:\work\Eclipse\ ...
- equals方法的编写建议
1.显示参数命名为 otherObject ,稍后需要将其转换成另一个叫做 other 的变量. 2.检测 this 与 otherObject 是否引用同一个对象: //这条语句只是一个优化.计算这 ...
- NoClassDefFoundError && ClassNotFoundException
两种错误都是涉及类加载问题,类层次结构如下: NoClassDefFoundError是系统错误,ClassNotFoundException是系统异常,可以捕获. NoClassDefFoundEr ...
- 【Android】Mac下Android Studio设置App启动页
先将启动页放到项目资源中,图片一般是1080*1920的jpg. 新建一个activity,如图: 创建成功之后,打开刚刚创建的activity,来进行代码的编写: public class BZLa ...
- PyCharm 2018 永久激活
PyCharm是一种Python IDE,带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试.语法高亮.Project管理.代码跳转.智能提示.自动完成.单元测试.版本控制. ...
- 从零开始搭建支持http2的web服务
前段时间开始,公司各项业务开始陆续接入http2,关于http2的优点与所适用的场景网上有很多的文档可以查阅,这里我主要是总结分享一下如何从0到1搭建http2服务. 这里先说明一下,要完成http2 ...
- 使用tkinter加载png,jpg
最近来使用tkinter加载图片时遇到了困难,按照资料写了 photo = PhotoImage(file='ques.png') imglabel = Label(root, image=photo ...
- linux必知必会命令
- bzoj 5212: [Zjoi2018]历史
Description 九条可怜是一个热爱阅读的女孩子. 这段时间,她看了一本非常有趣的小说,这本小说的架空世界引起了她的兴趣. 这个世界有n个城市,这n个城市被恰好n?1条双向道路联通,即任意两个城 ...