系统可以';t find:mchange-commons-java-0.2.11

系统可以';t find:mchange-commons-java-0.2.11,java,hibernate,spring-mvc,spring-boot,Java,Hibernate,Spring Mvc,Spring Boot,我有一个使用连接池的Spring启动项目。它在我的计算机中正常工作,但当我的同事从git中提取代码时,它就会尝试运行。它抛出了一个错误,如下所示: 2018-02-28 14:49:24.527 WARN 11856 --- [ost-startStop-1] o.a.tomcat.util.scan.StandardJarScanner : Failed to scan [file:/C:/Users/ABC/.m2/repository/com/mchange/c3p0/0.9.5.2/

我有一个使用连接池的Spring启动项目。它在我的计算机中正常工作,但当我的同事从git中提取代码时,它就会尝试运行。它抛出了一个错误,如下所示:

2018-02-28 14:49:24.527  WARN 11856 --- [ost-startStop-1] o.a.tomcat.util.scan.StandardJarScanner  : Failed to scan [file:/C:/Users/ABC/.m2/repository/com/mchange/c3p0/0.9.5.2/mchange-commons-java-0.2.11.jar] from classloader hierarchy

java.io.FileNotFoundException: C:\Users\ABC\.m2\repository\com\mchange\c3p0\0.9.5.2\mchange-commons-java-0.2.11.jar (The system cannot find the file specified)
at java.util.zip.ZipFile.open(Native Method) ~[na:1.8.0_60]
at java.util.zip.ZipFile.<init>(ZipFile.java:219) ~[na:1.8.0_60]
at java.util.zip.ZipFile.<init>(ZipFile.java:149) ~[na:1.8.0_60]
at java.util.jar.JarFile.<init>(JarFile.java:166) ~[na:1.8.0_60]
at java.util.jar.JarFile.<init>(JarFile.java:130) ~[na:1.8.0_60]
at org.apache.tomcat.util.scan.JarFileUrlJar.<init>(JarFileUrlJar.java:60) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:338) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288) ~[tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262) [tomcat-embed-jasper-8.5.23.jar:8.5.23]
at org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104) [tomcat-embed-jasper-8.5.23.jar:8.5.23]
at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) [tomcat-embed-jasper-8.5.23.jar:8.5.23]
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419) [tomcat-embed-core-8.5.23.jar:8.5.23]
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409) [tomcat-embed-core-8.5.23.jar:8.5.23]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_60]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_60]
2018-02-28 14:49:24.527警告11856---[ost-startStop-1]o.a.tomcat.util.scan.StandardJarScanner:未能从类加载器层次结构扫描[file:/C:/Users/ABC/.m2/repository/com/mchange/c3p0/0.9.5.2/mchange-commons-java-0.2.11.jar]
java.io.FileNotFoundException:C:\Users\ABC\.m2\repository\com\mchange\c3p0\0.9.5.2\mchange-commons-java-0.2.11.jar(系统找不到指定的文件)
在java.util.zip.ZipFile.open(本机方法)~[na:1.8.0\u 60]
在java.util.zip.ZipFile.(ZipFile.java:219)~[na:1.8.060]
在java.util.zip.ZipFile.(ZipFile.java:149)~[na:1.8.060]
在java.util.jar.JarFile.(JarFile.java:166)~[na:1.8.0\u 60]
在java.util.jar.JarFile.(JarFile.java:130)~[na:1.8.0_60]
在org.apache.tomcat.util.scan.JarFileUrlJar.(JarFileUrlJar.java:60)~[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.tomcat.util.scan.JarFactory.newInstance(JarFactory.java:49)~[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:338)~[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:288)~[tomcat-embed-core-8.5.23.jar:8.5.23]
位于org.apache.jasper.servlet.TldScanner.scanJars(TldScanner.java:262)[tomcat-embed-jasper-8.5.23.jar:8.5.23]
在org.apache.jasper.servlet.TldScanner.scan(TldScanner.java:104)[tomcat-embed-jasper-8.5.23.jar:8.5.23]
在org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101)[tomcat-embed-jasper-8.5.23.jar:8.5.23]
在org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5196)[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1419)[tomcat-embed-core-8.5.23.jar:8.5.23]
在org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)[tomcat-embed-core-8.5.23.jar:8.5.23]
在java.util.concurrent.FutureTask.run(FutureTask.java:266)[na:1.8.060]
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[na:1.8.060]
在java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[na:1.8.060]
在java.lang.Thread.run(Thread.java:745)[na:1.8.0_60]
我还尝试为mchange-commons-java-0.2.11添加依赖项,但仍然不起作用:

<dependency>
    <groupId>com.mchange</groupId>
    <artifactId>mchange-commons-java</artifactId>
    <version>0.2.11</version>
</dependency>

com.mchange
McChange commons java
0.2.11
如果你面对过或有过这样的经历,请给我一个评论/想法


我们将非常感谢并欢迎您的建议

不知何故,您的spring boot可传递依赖项引用了错误的 McChangeCommonsJava。根据您的错误,它正在搜索path.m2\repository\com\mchange\c3p0\0.9.5.2\mchange-commons-java-0.2.11.jar。见突出显示的c3p0。 理想情况下,路径必须是com\mchange\mchange commons java\0.2.11\mchange-commons-java-0.2.11.jar

McChange commons的java依赖关系似乎存在冲突


在eclipse或任何编辑器中打开pom.xml时,都会看到依赖关系层次结构,其中列出了所有可传递的依赖关系。查看是否存在c3p0的McChange commons java,如果存在,则排除该依赖项。然后,您对McChange commons java依赖关系的明确声明可能会起作用。

来自StandardJarScannerjavadoc:

默认JarScanner实现扫描WEB-INF/lib目录 然后是提供的类加载器,然后是类加载器 等级制度此实施足以满足要求 Servlet 3.0规范的 Tomcat特定的扩展。延长期限为:

  • 扫描类加载器层次结构(默认情况下启用)测试所有文件以查看它们是否为JAR(默认情况下禁用)

  • 测试所有目录以查看它们是否是分解的JAR(默认情况下禁用)

  • 所有扩展都可以通过配置进行控制

要禁止在启动时扫描特定的jar,可以添加此spring引导特定属性:

server.tomcat.additional-tld-skip-patterns=*mchange-commons-java*.jar

我的问题就这样解决了,看看你能不能解决你的问题。
问题解决方法

问题是c3p0.jar文件的类路径错误:


删除
.m2
目录并运行
干净安装
谢谢Malik,但它不起作用。手动将
mchange-commons-java-0.2.11.jar
从其位置复制到C:\Users\ABC\.m2\repository\com\mchange\c3p0\0.9.5.2\并重试。是的,我知道这是一种肮脏的方式,但它将帮助我们确定问题是否是因为上面位置缺少罐子。是的,我尝试过这种方式。就像你说的那样。但我们需要找出根本原因和解决问题的一般方法。嗨,阿什,我检查过了,似乎没有冲突。我发现maven中生成了两个文件夹。丢失的文件实际上就在那里,但我不知道为什么项目可以找到它们。您应该添加一个描述,以防链接断开此链接不会失败,Rest assuredorg.quartz-scheduler-quartz 2.3.0强烈依赖c3p0两个jar包什么是正确的类路径?无法看到您的图像。