xxl-job執行idea可以,生產環境不行
阿新 • • 發佈:2022-04-06
xxl-job執行
idea本地測試可以
生產環境不行
一直報類找不到
java.lang.NoClassDefFoundError: groovy/lang/GroovyClassLoader at com.xxl.job.core.glue.GlueFactory.<init>(GlueFactory.java:36) at com.xxl.job.core.glue.GlueFactory.<clinit>(GlueFactory.java:20) at com.xxl.job.core.executor.impl.XxlJobSpringExecutor.afterSingletonsInstantiated(XxlJobSpringExecutor.java:41) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:972) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:918) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:732) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:414) at org.springframework.boot.SpringApplication.run(SpringApplication.java:302) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1303) at org.springframework.boot.SpringApplication.run(SpringApplication.java:1292) at com.jdl.omega.job.OmegaJobApplication.main(OmegaJobApplication.java:19) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:497) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:109) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) Caused by: java.lang.ClassNotFoundException: groovy.lang.GroovyClassLoader at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 21 common frames omitted
根本原因
java.lang.NoClassDefFoundError: groovy/lang/GroovyClassLoader
因為xxl-job本地測試執行要依賴服務端xxl-job-admin,這個需要下xxl-job的原始碼,而且原始碼裡面是SNAPSHOT版本,裡面的maven也寫的是這個2.3.1-SNAPSHOT
但是客戶端引入maven依賴的時候,要寫xxl-job-core的座標
正確寫法
<!-- xxl-job-core --> <dependency> <groupId>com.xuxueli</groupId> <artifactId>xxl-job-core</artifactId> <version>2.3.1</version> </dependency>
錯誤寫法
<!-- xxl-job-core -->
<dependency>
<groupId>com.xuxueli</groupId>
<artifactId>xxl-job-core</artifactId>
<version>2.3.1-SNAPSHOT</version>
</dependency>
可見客戶端裡面寫version欄位一定要注意對應,不能寫上SNAPSHOT