2017-11-01 12 views
0

Grails 3.1.9プロジェクトでElasticsearchプラグイン( 'org.grails.plugins:elasticsearch:1.4.1')を使用してみました。 Grails 3で動作するElasticsearchプラグインを取得できません

は、私はまた、問題を実証するためのgithubの中に簡単なアプリケーションをアップロードしました( https://github.com/jackiebai/testEs

のみ 1つのドメインクラスを呼び出した上記のサンプルテストアプリ:

class Person { 
    String name 
    static searchable = true 
    static constraints = { 
    } 
} 

対応するサービスをクラスPersonServiceは、Personデータの保存と索引付けに使用されます。

いくつかのデータがデフォルトに挿入されますように、私は BootStrap.groovyにコードの行のカップルをも追加しました210

アプリケーションの起動時にDBを休止:

class BootStrap { 
    def personService 
    def init = { servletContext -> 
     personService.addPerson("Person One") 
     personService.addPerson("John Smith") 
    } 
    def destroy = { 
    } 
} 

application.yml変数 環境:開発環境の設定は以下のようになり 開発: のdataSource: のdbCreate:作成ドロップ URLます。jdbc:h2は:MEM:devDb; MVCC = TRUE; LOCK_TIMEOUT = 10000; DB_CLOSE_ON_EXIT = FALSE elasticSearch: クライアント: モード:ノード transport.sniff:真 bulkIndexOnStartup:真 datastoreImpl:hibernateDatastore

追加の依存関係とbootRunコードブロックはプラグインのユーザーガイド(http://noamt.github.io/elasticsearch-grails-plugin/docs/index.html

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'] 
} 
に従って、build.gradleに含まれていました

残念ながら、以下のエラーが発生したosx 10.11.6、java 1.8.0_91環境でアプリケーションを実行できませんでした:

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 
+0

参照してください。プラグインv2.4.0RC。答えを見つけてください。 –

答えて

0

を使用する文書によると、私はバージョン1.4.1が壊れていると信じています。あなたは3.3+ Grailsの持つ2.4.0.RC1を試すことができますが、春ブーツ用mapper-attachmentsに依存関係を追加し、elasticsearch.versionを指定する必要があります。

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' 
} 

私もGrailsの3.3とElasticsearchで、この問題に直面していたissue#198

関連する問題