grails3的elasticsearch插件问题

来源:互联网 发布:淘宝发送链接怎么发 编辑:程序博客网 时间:2024/06/07 10:18

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

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

package com.songtao.dwclass 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.lang.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的版本了.

原创粉丝点击