【发布时间】:2015-11-24 10:18:36
【问题描述】:
我正在处理一项需要将工作状态保存在数据库中的任务,但是当我尝试这样做时,它给了我java.lang.nullpointerexception。我认为这是因为每当我尝试从数据库中选择/保存/更新任何记录时,它都会给我类似的错误。
这是我的代码
public class PostFBJob implements Job {
private SchedulerService schedulerService;
private SubCampaignService subCampaignService;
@SuppressWarnings("unchecked")
public void execute(JobExecutionContext context) throws JobExecutionException {
JobDetail jobDetail = context.getJobDetail();
JobDataMap jobDataMap = jobDetail.getJobDataMap();
schedulerService = (SchedulerService) jobDataMap.get("schedulerService");
SubCampaign subCampaign = (SubCampaign) jobDataMap.get("subCampaign");
if (prStreamItem.getName().equalsIgnoreCase("Facebook") && StringUtils.isNotBlank(branch.getFbAccessToken())) {
FacebookService facebookService = FacebookService.getSingleton();
try {
subCampaign.setStatus("Completed");
subCampaign.setMessage("Completed");
subCampaignService.updateSubCampaign(subCampaign);
} catch (Exception e) {
log.error("", e);
}
}
}
}
例外
java.lang.NullPointerException
at com.ace.Job.SubCampaignJob.execute(SubCampaignJob.java:147)
at org.quartz.core.JobRunShell.run(JobRunShell.java:213)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:557)
Error: java.lang.NullPointerException
请帮我解决这个问题。我是 Spring 和 Quartz 的新手。
提前致谢
【问题讨论】:
-
请同时提供有问题的整个例外情况。
-
NullPointerException 是最容易调试的问题之一:堆栈跟踪会告诉您它发生的文件和行号。调试器中的快速旋转将显示未正确初始化的引用。无法从您发布的代码中分辨出来。我在这里看不到数据库代码; updateSubCampaign 是我的最佳猜测。
-
是的,你是。使用调试器。 IntelliJ 是市场上最好的 IDE,并且有社区版本。去实现它(梦想);去得到它(东西。要成为一名成功的程序员,调试是一项关键技能。
-
不。当我写这篇文章时,你在 47 分钟前发布了这个问题。如果您有调试器并知道如何使用它,您就会发现并继续前进。即使在使用之前为每个参考添加 println 输出,也会比在 SO 上询问更快。
-
@KatjaChristiansen 这个问题与
nullpointerexception完全不同,因为石英控制器不允许我从其中访问服务层而发生错误
标签: java spring hibernate spring-mvc quartz-scheduler