线上有个Jar,用的maven shade的方式打的,有一些定时任务会用到这个Jar。
每次发布如果赶上任务在运行,任务就会报错。
我自己打了一个简单的Jar,参考
https://rebooters.github.io/2019/09/12/%E5%A6%82%E4%BD%95%E6%8A%8AJava%E6%96%87%E4%BB%B6%E6%89%93%E5%8C%85%E4%B8%BAJar%E6%96%87%E4%BB%B6/测试了几次,并不会报错。Spring boot打的Jar,跑起来替换也不会报错。
报错类似:
Exception in thread "task-pool-0" java.lang.NoClassDefFoundError: com/google/common/util/concurrent/AbstractFuture$Failure
at com.google.common.util.concurrent.AbstractFuture.setException(AbstractFuture.java:673)
at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:113)
at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:58)
at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:75)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.AbstractFuture$Failure
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 7 more
--
FROM 221.217.178.*