Failed to introspect Class [XXX] from ClassLoader

出差到客户现场,部署环境。结果之前好好程序到了这边就突然无法启动,报错如下

 

2019-06-26 11:37:47 [main] WARN  [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext] - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'xxxService': Lookup method resolution failed; nested exception is java.lang.IllegalStateException: Failed to introspect Class com.xxxservice.xxxService] from ClassLoader [sun.misc.Launcher$AppClassLoader@55f96302]

上网百度一大堆挨个试,没起啥作用。所有人都在等着我这边部署完毕,压力山大。突然看到一篇文章说,可能是引用了某个方法或者文件,但是没找到。这不应该是CLASSNOTFOUND之类的错误嘛。。。

后来,回想了一下,我们客户服务器上的部署方式,实际上是把所有的jar都放在lib文件夹下面,然后各个模块直接访问这些jar,这样的目的应该是为了减少各个模块的jar包大小。

我们是一个多模块项目,所有的项目都是依赖于base模块。而base模块的jar包也是放在lib文件夹下面的,即时我们有单独的base模块是需要启动的,但是其他模块对于base模块的引用还是基础lib模块下面的jar包。

这样情况就比较明朗了,是因为我们后来在base模块里面增加了某个方法,并且在子模块中引用,但是没有重新打base.jar放在lib中,于是后面启动jar包的时候,就无法引用到这个方法,结果就报错了。。。。。

这也是为什么我本地正常,但是到服务器上问题的原因。。。

所以,为什么不是方法找不到,或者类找不到呢。。。。55555

你可能感兴趣的:(部署)