【发布时间】:2016-03-04 21:11:03
【问题描述】:
我为elasticsearch制作了一个本地java插件,并在我的插件中导入了net.sf.json jar。所以我在path\elasticsearch-2.0.0\lib中添加了以下jar:
commons-beanutils-1.8.0
commons-collections-3.2.1
commons-lang-2.5
commons-logging-1.1.1
ezmorph-1.0.6
json-lib-2.4-jdk15
但是当我运行./elasticsearch 时,它显示以下异常:
Exception in thread "main" java.lang.IllegalStateException: jar hell!
class: org.apache.commons.collections.ArrayStack
jar1: D:\Program Files\elasticsearch-2.0.0\lib\commons-beanutils-1.8.0.jar
jar2: D:\Program Files\elasticsearch-2.0.0\lib\commons-collections-3.2.1.jar
at org.elasticsearch.bootstrap.JarHell.checkClass(JarHell.java:267)
at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:185)
at org.elasticsearch.bootstrap.JarHell.checkJarHell(JarHell.java:86)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:156)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)
Refer to the log for complete error details.
引用的 checkClass,我猜是因为 commons-beanutils-1.8.0.jar 和 commons-collections-3.2.1.jar 都有路径 org\apache\commons\collections。
我该如何处理?
还有其他方法可以在 elasticsearch 中为插件添加额外的 jar 吗?
【问题讨论】:
-
您是否使用 Maven 来构建和管理依赖项?
-
是的,我这样管理依赖项:
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.4</version> <classifier>jdk15</classifier> </dependency>
标签: java json elasticsearch jar elasticsearch-plugin