首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ElasticSearch java.lang.IllegalStateException: jar地狱

ElasticSearch java.lang.IllegalStateException: jar地狱
EN

Stack Overflow用户
提问于 2016-02-11 07:44:56
回答 2查看 2.7K关注 0票数 1

我以前能够运行我的应用程序,但是自从今天我尝试了一些实验之后,它突然给了我jar巨大的错误。我不知道这个例外是怎么回事,现在我的项目不能再工作了。这是错误的原因:

代码语言:javascript
复制
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?这是我的代码片段。

代码语言:javascript
复制
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参数中使用弹性主路径来更改我的项目,但也不再起作用了,因为我遵循了这个链接中提到的解决方案,但是错误仍然会引发。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-20 13:58:56

试着使用:

代码语言:javascript
复制
-Dtests.jarhell.check=false

备注:它适用于我的Elasticsearch 2.4。我看到了一些评论,它不是在所有的Elasticsearch版本中都可用(参见当编写集成测试时,Elasticsearch地狱)

票数 1
EN

Stack Overflow用户

发布于 2016-02-16 17:39:32

我得到了与catalina-ant.jar.冲突的catalina.jar的相同错误消息因此,快速修复方法是将$TOMCAT/lib文件夹中的catalina-ant.jar重命名为catalina-ant.jar.orig。

猫猫还在为我奔波,即使有一个图书馆不见了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35333478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档