我以前能够运行我的应用程序,但是自从今天我尝试了一些实验之后,它突然给了我jar巨大的错误。我不知道这个例外是怎么回事,现在我的项目不能再工作了。这是错误的原因:
44 [main] DEBUG org.elasticsearch.bootstrap - examining jar: /usr/local/apache-tomcat-7.0.62/lib/annotations-api.jar
55 [main] DEBUG org.elasticsearch.bootstrap - examining jar: /usr/local/apache-tomcat-7.0.62/lib/catalina-ant.jar
57 [main] DEBUG org.elasticsearch.bootstrap - examining jar: /usr/local/apache-tomcat-7.0.62/lib/catalina-ha.jar
59 [main] DEBUG org.elasticsearch.bootstrap - examining jar: /usr/local/apache-tomcat-7.0.62/lib/catalina-tribes.jar
62 [main] DEBUG org.elasticsearch.bootstrap - examining jar: /usr/local/apache-tomcat-7.0.62/lib/catalina.jar
Exception in thread "main" java.lang.IllegalStateException: failed to load bundle [] due to jar hell
at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:338)
at org.elasticsearch.plugins.PluginsService.<init>(PluginsService.java:109)
at org.elasticsearch.node.Node.<init>(Node.java:146)
at org.elasticsearch.node.Node.<init>(Node.java:128)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145)
at com.elastic.Main.main(Main.java:38)
Caused by: java.lang.IllegalStateException: jar hell!
class: org.apache.catalina.util.Base64
jar1: /usr/local/apache-tomcat-7.0.62/lib/catalina-ant.jar
jar2: /usr/local/apache-tomcat-7.0.62/lib/catalina.jar
at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:280)
at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:186)
at org.elasticsearch.plugins.PluginsService.loadBundles(PluginsService.java:336)
... 5 more为什么罐子地狱会发生?在我的开发人员生涯中,我从未见过这种情况,而且我的应用程序在今天之前是可行的。我是不是遗漏了一些重要的东西来实现elasticsearch?这是我的代码片段。
Settings.Builder settings = Settings.settingsBuilder();
settings.put("path.home", Paths.get("").toAbsolutePath().toString() + File.separator + "resource" + File.separator + "elasticsearch-2.1.2");
settings.put("cluster.name","mySearch");
Node node = NodeBuilder.nodeBuilder().settings(settings).build().start();
Client client = node.client();任何帮助或线索都是受欢迎和非常感激的。
编辑1:
我没有使用VM参数来确定ES主路径,因为在传输项目时,我需要将项目带入不同的路径和平台。
编辑2:
我试图在VM参数中使用弹性主路径来更改我的项目,但也不再起作用了,因为我遵循了这个链接中提到的解决方案,但是错误仍然会引发。
发布于 2017-04-20 13:58:56
试着使用:
-Dtests.jarhell.check=false备注:它适用于我的Elasticsearch 2.4。我看到了一些评论,它不是在所有的Elasticsearch版本中都可用(参见当编写集成测试时,Elasticsearch地狱)
发布于 2016-02-16 17:39:32
我得到了与catalina-ant.jar.冲突的catalina.jar的相同错误消息因此,快速修复方法是将$TOMCAT/lib文件夹中的catalina-ant.jar重命名为catalina-ant.jar.orig。
猫猫还在为我奔波,即使有一个图书馆不见了。
https://stackoverflow.com/questions/35333478
复制相似问题