2022年2月27日 作者 zeroheart

xercesImpl.jar (系统找不到指定的文件)、spring boot启动 Failed to scan from classloader hierarchy

这个问题,实际上是tomcat8.5.2会出现的一个jar的问题,修改了加载jar包的方式导致的

具体可以参考:xalan\xalan\2.7.2\xercesImpl.jar (系统找不到指定的文件)问题 – 倚天剑雨 – 博客园 (cnblogs.com)

上文中的解决办法是通过降低tomcat版本来实现处理,全网搜索之后发现了其他的方法,记录一下,参考:找不到jar包_如何解决一个全网都找不到答案的bug? (daimajiaoliu.com),这个标题确实很绝,我也是找了半天才找到的。。

增加一个配置即可处理
/**
     * 处理了tomcat9报异常的问题,虽然不影响运行,但是看着不太舒服
     * 参考:https://daimajiaoliu.com/daima/8c6d5d3be44d402
     * @return
     */
    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
            @Override
            protected void postProcessContext(Context context) {
                ((StandardJarScanner) context.getJarScanner()).setScanManifest(false);
            }
        };
    }

还有这个老哥的配置,没测试,应该是一样的效果:(25条消息) spring boot启动 Failed to scan from classloader hierarchy 解决方案_风在-CSDN博客