首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法让Elasticsearch插件使用Grails 3

无法让Elasticsearch插件使用Grails 3
EN

Stack Overflow用户
提问于 2017-11-01 20:52:26
回答 2查看 1.4K关注 0票数 0

我尝试用Grails3.1.9项目连接Elasticsearch插件('org.grails.plugins:elasticsearch:1.4.1')。

我还在github中上传了一个简单的应用程序来演示这个问题(https://github.com/jackiebai/testEs)

上面的示例测试应用程序只有一个名为Person的域类

代码语言:javascript
复制
class Person {
    String name
    static searchable = true
    static constraints = {
    }
}

相应的服务类PersonService用于保存和索引Person数据:

代码语言:javascript
复制
import grails.transaction.Transactional
@Transactional
class PersonService {
    def addPerson(Person person){
        person.save()
        person.index()
    }
    def addPerson(String name) {
        Person p = new Person(name:name)
        addPerson(p)
    }
}

我还在BootStrap.groovy中添加了几行代码,以便在应用程序启动时将一些数据插入到默认的hibernate db中:

代码语言:javascript
复制
class BootStrap {
    def personService
    def init = { servletContext ->
        personService.addPerson("Person One")
        personService.addPerson("John Smith")
    }
    def destroy = {
    }
}

开发环境的application.yml变量设置如下所示: environment : dataSource: dbCreate: create-drop url: application.ymlDB_CLOSE_ON_EXIT=FALSE elasticSearch: client:模式:节点transport.sniff: true bulkIndexOnStartup: true datastoreImpl: hibernateDatastore

附加依赖项和bootRun代码块通过遵循插件用户指南(http://noamt.github.io/elasticsearch-grails-plugin/docs/index.html)包含在build.gradle中。

代码语言:javascript
复制
dependencies {
    ...
    compile 'org.grails.plugins:elasticsearch:1.4.1'
    compile 'org.elasticsearch:elasticsearch:5.4.1'
    ...
}
bootRun{
    jvmArgs = ['-Des.path.home=/Users/myname/elasticsearch-5.4.1']
}

不幸的是,应用程序未能在我的OSX10.11.6,java 1.8.0_91环境下运行,有以下错误:

代码语言:javascript
复制
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'elasticSearchClient': FactoryBean threw exception on object creation; nested exception is java.lang.NoClassDefFoundError: org/elasticsearch/mapper/attachments/MapperAttachmentsPlugin
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1590)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)
    ... 34 common frames omitted
Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/mapper/attachments/MapperAttachmentsPlugin
    at grails.plugins.elasticsearch.ClientNodeFactoryBean.getObject(ClientNodeFactoryBean.groovy:207)
    at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
    ... 39 common frames omitted
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.mapper.attachments.MapperAttachmentsPlugin
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 41 common frames omitted
EN

回答 2

Stack Overflow用户

发布于 2017-12-20 06:04:52

根据文档,您应该使用v1.2.0

https://github.com/noamt/elasticsearch-grails-plugin

票数 2
EN

Stack Overflow用户

发布于 2018-01-12 14:51:07

我相信1.4.1版已经坏了。您可以使用Grails 3.3+尝试2.4.0.RC1,但是您需要向mapper-attachments添加依赖项,并为Spring指定elasticsearch.version

代码语言:javascript
复制
ext['elasticsearch.version'] = '5.4.1'

dependencies {
    compile 'org.grails.plugins:elasticsearch:2.4.0.RC1'
    runtime 'org.elasticsearch.plugin:mapper-attachments:2.4.6'
}

请参阅issue#198

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

https://stackoverflow.com/questions/47063484

复制
相关文章

相似问题

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