我有一个使用连接池的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]
如果您遇到或有过相关经历,请留下评论/想法。
我们非常感谢您的建议或建议!
答案 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文件的类路径错误:
答案 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