1. 程式人生 > 其它 >xxl-job執行idea可以,生產環境不行

xxl-job執行idea可以,生產環境不行

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