【发布时间】:2017-12-19 20:40:14
【问题描述】:
我刚刚问过another question,因为我遇到了一些 ClassNotFoundException。
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.plugins.NetworkPlugin
at java.net.URLClassLoader.findClass(URLClassLoader.java:381) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_131]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335) ~[na:1.8.0_131]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_131]
... 56 common frames omitted
有人向我指出,这个异常意味着在运行时在类路径中找不到所提到的类。这是我在 pom.xml 文件中有容器包的情况。
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>5.5.0</version>
</dependency>
所以现在我的问题是,如何将包命名为依赖项但其中的某些类在运行时丢失?而且,mvn dependency:tree -Dverbose -Dincludes=commons-collections 不会返回任何冲突。
这是我在调试模式下使用 IntelliJ Idea 运行的 Spring Boot 项目。我还在我的代码中以完全相同的方式使用了十几个其他包,它们都运行顺利。但是一旦我添加了 Elasticsearch,我就会遇到上面提到的异常。
【问题讨论】:
-
发布所有堆栈跟踪。有人在这里使用魔法。
标签: java maven intellij-idea