Gle*_*eeb 5 java lucene maven elasticsearch
我正在尝试为集成测试创建一个嵌入式节点,但由于某种原因,我在创建节点本身时会遇到一些异常,而某些类缺失,
我正在使用maven,我唯一与ES相关的导入就是这个
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>1.4.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这反过来又带来了它所需的所有依赖,包括lucene.
此代码中发生异常:
@Bean(destroyMethod="close")
public Client transportClient() {
Node node = NodeBuilder.nodeBuilder().node(); //class not found
Client client = node.client();
return client;
}
Run Code Online (Sandbox Code Playgroud)
例外情况如下:
1:
java.lang.ClassNotFoundException: groovy.lang.GroovyClassLoader
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_25]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_25]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_25]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_25]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_25]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_25]
Run Code Online (Sandbox Code Playgroud)
2:
java.lang.ClassNotFoundException: org.apache.lucene.expressions.Expression
at java.net.URLClassLoader$1.run(URLClassLoader.java:372) ~[na:1.8.0_25]
at java.net.URLClassLoader$1.run(URLClassLoader.java:361) ~[na:1.8.0_25]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_25]
at java.net.URLClassLoader.findClass(URLClassLoader.java:360) ~[na:1.8.0_25]
at java.lang.ClassLoader.loadClass(ClassLoader.java:424) ~[na:1.8.0_25]
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.8.0_25]
at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ~[na:1.8.0_25]
at org.elasticsearch.script.ScriptModule.configure(ScriptModule.java:98) ~[elasticsearch-1.4.1.jar:na]
at org.elasticsearch.common.inject.AbstractModule.configure(AbstractModule.java:60) [elasticsearch-1.4.1.jar:na]
at org.elasticsearch.common.inject.spi.Elements$RecordingBinder.install(Elements.java:204) [elasticsearch-1.4.1.jar:na]
at org.elasticsearch.common.inject.spi.Elements.getElements(Elements.java:85) [elasticsearch-1.4.1.jar:na]
Run Code Online (Sandbox Code Playgroud)
除了你提到的两个例外之外,对我来说也是一样的。(唯一的区别是Elasticsearch版本号,在我的项目中是1.3.2。)
为了消除异常,我尝试通过将以下依赖项显式添加到我的 pom.xml 来导入指定的类:
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>2.3.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.lucene</groupId>
<artifactId>lucene-expressions</artifactId>
<version>4.10.2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
(对于 Elasticsearch 1.3.1,我必须选择 lucene-expressions 4.9。)
很抱歉,我现在无法说出为什么这是必要的,但至少它有帮助。
| 归档时间: |
|
| 查看次数: |
3099 次 |
| 最近记录: |