当前位置:首页 > Java技术 > Quartz:ERROR threw an unhandled Exception

Quartz:ERROR threw an unhandled Exception

2022年08月04日 19:31:57Java技术4

详细的错误信息如下:

 1 2016-06-28 17:18:13.366 [DefaultQuartzScheduler_Worker-1] ERROR org.quartz.core.JobRunShell:211 - Job group1.job1 threw an unhandled Exception: 
 2 java.lang.NullPointerException
 3     at com.starunion.java.service.timer.JobEndConference.execute(JobEndConference.java:45) ~[bin/:?]
 4     at org.quartz.core.JobRunShell.run(JobRunShell.java:202) [quartz-2.2.1.jar:?]
 5     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.2.1.jar:?]
 6 2016-06-28 17:18:13.374 [DefaultQuartzScheduler_Worker-1] ERROR org.quartz.core.ErrorLogger:2425 - Job (group1.job1 threw an exception.
 7 org.quartz.SchedulerException: Job threw an unhandled exception.
 8     at org.quartz.core.JobRunShell.run(JobRunShell.java:213) [quartz-2.2.1.jar:?]
 9     at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.2.1.jar:?]
10 Caused by: java.lang.NullPointerException
11     at com.starunion.java.service.timer.JobEndConference.execute(JobEndConference.java:45) ~[bin/:?]
12     at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.2.1.jar:?]

说说我的解决过程:

一、原因很明显:调用了null对象。

根据日志信息,定位到我的Job对象类的指定行,下图的21行:

 1 @Component
 2 public class JobEndConference implements Job {
 3 
 4     @Autowired
 5     CallableFsExecCmdProc procExecTask;
 6 
 7     @Override
 8     public void execute(JobExecutionContext JEContext) throws JobExecutionException {
 9 
10         JobDataMap map = JEContext.getJobDetail().getJobDataMap();
11 
12         String meetName = (String) map.get("meetName");
13 
14         StringBuffer buff = new StringBuffer();
15         buff.append("bgapi conference ");
16         buff.append(meetName);
17         buff.append(" kick all");
18         // buff.append(ConstantUtil.FS_CMD_TAIL);
19         20         // SocketFsTcp4SendCMD.fsSendCommand(buff.toString());
21         procExecTask.setSendCmd(buff.toString());
22         Future<Integer> future = StarProxy.executor.submit(procExecTask);
23         try {
24             future.get(5000, TimeUnit.MILLISECONDS);
25         } catch (InterruptedException | ExecutionException | TimeoutException e) {
26             e.printStackTrace();
27         }
28 
29     }
30 
31 }

这个对象为空,也就意味着没有通过Spring注解正确的初始化。

确定这个注解的写法是正确的,其他所有的类都是这么写的。

二、那问题在哪里呢?

往上查,看看对这个类的调用情况。

1 ......
2 JobDetail jobDetail = newJob(JobEndConference.class).withIdentity("job1", "group1").setJobData(dm).build();
3 ......

原因出来了,newJob传入的对象参数并非Spring注解加载的那个对象。

三、解决办法:

方法1. 从Spring的ApplicationContext获取JobEndConference对象。

方法2. 取消JobEndConference的本身和参数的注解,用new初始化。

 

作者:一沙世界
来源链接:https://www.cnblogs.com/yoyotl/p/5624268.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/17197.html

标签: 异常
分享给朋友:

“Quartz:ERROR threw an unhandled Exception” 的相关文章

Java空指针异常解决java.lang.NullPointerException解决心得

Java空指针异常解决java.lang.NullPointerException解决心得

今天做课设的时候运行程序报出以下错误 java.lang.NullPointerException 首先要理解的是此错误并不会在 程序中报错,只会在运行的时候报错。 是由于某个参数(集合,数组等数据)可能出现一个null值而导致后面的程序不能运行时...

解决 There is no getter for property named ‘null‘ in class 的报错异常

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There i...

浅谈java异常[Exception]

一. 异常的定义 在《java编程思想》中这样定义 异常:阻止当前方法或作用域继续执行的问题。虽然java中有异常处理机制,但是要明确一点,决不应该用"正常"的态度来看待异常。绝对一点说异常就是某种意义上的错误,就是问题,它可能会导致程序失败。之所以java要...

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

Spring Boot 2.x 系列教程:WebFlux REST API 全局异常处理 Error Handling

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! 本文内容 为什么要全局异常处理? WebFlux REST 全局异常处理实战 小结 摘录...

Java 异常基础 Exception

Java 异常基础 Exception

Java中的异常。包括异常的基本分类,处理异常的基本方法,自定义异常的方法和常见的一种有关异常的笔试面试题。 Java中的异常 Exception   java.lang.Exception类是Java中所有异常的直接或间接父类。即Exception类是所有异常...

解决ADT不显示javadoc An exception occurred while getting the javadoc

这几天发现ADT在网速特别差的情况下,鼠标悬停不会显示javadoc,而自己写的注释则没有问题. 在网络畅通的时候又会显示javadoc. 所以我猜测ADT会在本地查找文档失败时候尝试联网查找. 一般来说,如果你之前鼠标悬停会显示javadoc,最近突然不显示了...

ERROR org.hibernate.search.exception.impl.LogErrorHandler

2019-06-12 10:17:42 [Hibernate Search: entityloader-1] ERROR org.hibernate.search.exception.impl.LogErrorHandler - HSEARCH000058: HSEARCH0...

after : """>【异常】Maxwell异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: after : ""

1 详细异常 Exception in thread "main" net.sf.jsqlparser.parser.TokenMgrError: Lexical error at line 1, column 596. Encountered: <EOF>...

关于Java中Error和Exception的区别

  做个比喻:   Error和Exception的区别就是水池和水池里的水的区别;   水池,是代码正常运行的外部环境,如果水池奔溃(系统奔溃),或者池水满溢(内存溢出),这些跟水池外部环境有关的是Error;   水池里的水,是正常运行的代码,水污染了,有杂质了,...

Java使用dom4j读取xml时报错:org.dom4j.DocumentException: Error on line 2 of document : Invalid byte 2 of 2-byte UTF-8 sequence. Nested exception: Invalid byte 2 of 2-byte UTF-8 sequence

1.Java使用dom4j读取xml时报错:   org.dom4j.DocumentException: Error on line 2 of document  : Invalid byte 2 of 2-byte UTF-8 sequence. Nested ex...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。