系统无法找到:mchange-commons-java-0.2.11

时间:2018-02-28 04:53:43

标签: java hibernate spring-mvc spring-boot

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

if (i == 0){
string type = $GNRMC;
}

if (i == 1){
float thisnum = 011802.00
}

我还尝试为 mchange-commons-java-0.2.11 添加依赖项,但它仍然无效:

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]

如果您遇到或有过相关经历,请留下评论/想法。

我们非常感谢您的建议或建议!

4 个答案:

答案 0 :(得分:2)

来自 StandardJarScanner javadoc:

  

默认的JarScanner实现扫描WEB-INF / lib 目录   然后是提供的类加载器,然后处理类加载器   层次结构。此实施足以满足要求   Servlet 3.0规范以及提供的一些   Tomcat特定扩展。扩展名为:

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

  •   
  • 测试所有目录以查看它们是否为爆炸JAR(默认情况下已禁用)

  •   
  • 所有扩展程序均可通过配置进行控制。

  •   

要在启动时禁用该特定jar,您可以添加此Spring Boot特定属性:

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

答案 1 :(得分:2)

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

enter image description here

答案 2 :(得分:0)

不知何故,你的春季启动传递依赖指的是错误的 mchange公地的Java。从您的错误中,它正在搜索路径.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。

似乎mchange-commons-java依赖项存在冲突。

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

答案 3 :(得分:-1)

我的问题以这种方式解决了,看看你是否可以解决问题。 问题解决方法https://my.oschina.net/antsdot/blog/1634440