首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ShedLock virsion 4.20.1-计划任务NoClassDefFoundError ClockProvider中出现意外错误

ShedLock virsion 4.20.1-计划任务NoClassDefFoundError ClockProvider中出现意外错误
EN

Stack Overflow用户
提问于 2021-03-03 20:22:10
回答 1查看 226关注 0票数 0

我在oracle DB中使用Shedlock,我遵循了这个文档,在异常之后,我还在表中添加了第5列“now https://github.com/lukas-krecan/ShedLock (3) NULL”。它是当前唯一运行的实例。

这是我的配置

代码语言:javascript
复制
@Scheduled(fixedRateString = "${schedules}" )
@SchedulerLock(name = "Milmes08",lockAtLeastForString  = "PT70S", lockAtMostForString = "PT70S")
@GetMapping
public TransferAllOut transferAll() throws Exception {
//code      
}

这是已配置的bean

代码语言:javascript
复制
@Bean
public LockProvider lockProvider(@Qualifier("oracleDataSource") DataSource dataSource) {
    return new JdbcTemplateLockProvider(dataSource);
}

这是表格

代码语言:javascript
复制
CREATE TABLE shedlock(
name VARCHAR(64), 
lock_until TIMESTAMP(3) NULL, 
locked_at TIMESTAMP(3) NULL, 
locked_by  VARCHAR(255), 
now TIMESTAMP(3) NULL,
PRIMARY KEY (name)

)

以及调度的启用

代码语言:javascript
复制
@EnableScheduling
@SpringBootApplication
@EnableSchedulerLock(defaultLockAtMostFor = "PT5M")
public class JswMilme08ApiApplication {

public static void main(String[] args) {
    SpringApplication.run(JswMilme08ApiApplication.class, args);

}

这是个例外

代码语言:javascript
复制
scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler 2021-03-03 13:52:29 - Unexpected error occurred 
in scheduled task
java.lang.NoClassDefFoundError: net/javacrumbs/shedlock/core/ClockProvider
at 
net.javacrumbs.shedlock.provider.jdbctemplate.SqlStatementsSource.params(SqlStatementsSource.java:86)
at net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateStorageAccessor.params(JdbcTemplateStorageAccessor.java:117)
at net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateStorageAccessor.lambda$insertRecord$0(JdbcTemplateStorageAccessor.java:65)
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
at net.javacrumbs.shedlock.provider.jdbctemplate.JdbcTemplateStorageAccessor.insertRecord(JdbcTemplateStorageAccessor.java:64)
at net.javacrumbs.shedlock.support.StorageBasedLockProvider.doLock(StorageBasedLockProvider.java:77)
at net.javacrumbs.shedlock.support.StorageBasedLockProvider.lock(StorageBasedLockProvider.java:61)
at net.javacrumbs.shedlock.core.DefaultLockingTaskExecutor.executeWithLock(DefaultLockingTaskExecutor.java:50)
at net.javacrumbs.shedlock.core.DefaultLockingTaskExecutor.executeWithLock(DefaultLockingTaskExecutor.java:39)
at net.javacrumbs.shedlock.core.DefaultLockManager.executeWithLock(DefaultLockManager.java:51)
at net.javacrumbs.shedlock.core.LockableRunnable.run(LockableRunnable.java:35)
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.ClassNotFoundException: net.javacrumbs.shedlock.core.ClockProvider
at java.base/java.net.URLClassLoader.findClass(URLClassLoader.java:471)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:588)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 18 common frames omitted
EN

回答 1

Stack Overflow用户

发布于 2021-03-04 15:20:27

NoClassDefFoundError通常是由您的依赖项的某些问题引起的。在这种情况下,我猜您的class-path中有旧版本的shedlock-core。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66456980

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档