springboot项目遇到了一个问题,在启动jar包后,这时候重新打包覆盖老包,但是进程没有重启。请求一个接口,这个接口是第一次请求,这时候会出现NoClassDefFoundError报错。这个现象是必现的,在windows和linux环境都是如此。如果不是覆盖老包,而是先删除,再上传,就不会出现问题。
java进程启动之后,字节码不都加载到内存里了吗,为什么还会出现这种问题?
"Exception in thread "Thread-8" java.lang.NoClassDefFoundError: com/alibaba/nacos/common/http/DefaultHttpClientFactory
at com.alibaba.nacos.common.http.HttpClientBeanHolder.shutdown(HttpClientBeanHolder.java:105)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: com.alibaba.nacos.common.http.DefaultHttpClientFactory
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
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)
... 2 more