grails3的elasticsearch插件问题

Grails3.3.x 安装elasticsearch插件问题

这两天尝试使用grails3,搭建一个mongodb,elasticsearch的环境,在按照mongodb插件和elasticsearch插件的说明页正常安装后,所得的数据不能index到elasticsearch中.
如果如下定义domain,选择使用searchable=true时

package com.songtao.dw
class Bike {
    String name
    String type
    static searchable = true
    static constraints = {
        name nullable: true
        type nullable: true
    }
}

项目会一直报错:

Caused by: org.grails.core.exceptions.GrailsConfigurationException: The method [public abstract org.grails.datastore.mapping.model.PersistentEntity org.grails.datastore.mapping.model.MappingContext.getPersistentEntity(java.lan
g.String)] cannot be accessed before GORM has initialized

如果去掉domain中的searchable=true
在service中调用 elasticsearchService 时,仍然为空
那我岂不是白装es插件了???!!

经过大量的翻查资料,终于找到原因了:


原来在grails3.2.x升级到grails3.3.0的时候,将grails自带的GrailsEntity废弃掉了.

      Grails Domain Class API Deprecated

因此导致了在一些插件中使用grailsEntity的特性时,会出错.
这篇文章 写的比较详细,搜索 GrailsDomainClass 或者elasticsearch 找到具体的解释位置.

文中说明应该注入 grailsDomainClassMappingContext ,实测并无卵用. 准备降低grails的版本了.

猜你喜欢

转载自blog.csdn.net/shsongtao/article/details/78011547
今日推荐