Play2上的Play2弹性搜索错误

时间:2013-10-30 02:27:45

标签: playframework-2.0 elasticsearch

我正在使用play 2弹性搜索插件(https://github.com/cleverage/play2-elasticsearch)并且在开发模式下工作正常,但是当我运行play dist并打包应用程序时,在运行它之后,索引不会被创建。

这是stacktrace:

[error] application - ElasticSearch:启动ElasticSearch Client时出错 org.elasticsearch.ElasticSearchIllegalStateException:无法获取节点锁定,以下位置是否可写?:[data / play2-elasticsearch]     在org.elasticsearch.env.NodeEnvironment。(NodeEnvironment.java:123)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     at org.elasticsearch.node.internal.InternalNode。(InternalNode.java:139)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)〜[org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     at com.github.cleverage.elasticsearch.IndexClient.start(IndexClient.java:36)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]     at com.github.cleverage.elasticsearch.plugin.IndexPlugin.onStart(IndexPlugin.java:47)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT] 引起:java.io.IOException:无法获得锁定/ Users / Nicolas / IdeaProjects / lavidaporloscolores / target / universal / stage / data / play2-elasticsearch / nodes / 49     在org.elasticsearch.env.NodeEnvironment。(NodeEnvironment.java:102)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     at org.elasticsearch.node.internal.InternalNode。(InternalNode.java:139)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)〜[org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     at com.github.cleverage.elasticsearch.IndexClient.start(IndexClient.java:36)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]     at com.github.cleverage.elasticsearch.plugin.IndexPlugin.onStart(IndexPlugin.java:47)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT] 引起:java.io.IOException:无法创建目录:/ Users / Nicolas / IdeaProjects / lavidaporloscolores / target / universal / stage / data / play2-elasticsearch / nodes / 49     在org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:171)〜[org.apache.lucene.lucene-core-4.4.0.jar:4.4.0 1504776 - sarowe - 2013-07-19 02 :53:42]     在org.elasticsearch.env.NodeEnvironment。(NodeEnvironment.java:80)〜[org.elasticsearch.elasticsearch-0.90.5.jar:na]     at org.elasticsearch.node.internal.InternalNode。(InternalNode.java:139)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:159)〜[org.elasticsearch.elasticsearch-0.90.5.jar:na]     在org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:166)~ [org.elasticsearch.elasticsearch-0.90.5.jar:na]     at com.github.cleverage.elasticsearch.IndexClient.start(IndexClient.java:36)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT] [error] application - ElasticSearch:索引准备期间发生了意外异常。索引尚未创建和准备。 java.lang.NullPointerException:null     at com.github.cleverage.elasticsearch.IndexService.existsIndex(IndexService.java:378)~ [com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]     at com.github.cleverage.elasticsearch.plugin.IndexPlugin.onStart(IndexPlugin.java:58)〜[com.clever-age.play2-elasticsearch-0.8-SNAPSHOT.jar:0.8-SNAPSHOT]     at play.api.Play $$ anonfun $ start $ 1 $$ anonfun $ apply $ mcV $ sp $ 1.apply(Play.scala:88)[com.typesafe.play.play_2.10-2.2.0.jar:2.2。 0]     at play.api.Play $$ anonfun $ start $ 1 $$ anonfun $ apply $ mcV $ sp $ 1.apply(Play.scala:88)[com.typesafe.play.play_2.10-2.2.0.jar:2.2。 0]     在scala.collection.immutable.List.foreach(List.scala:318)[org.scala-lang.scala-library-2.10.2.jar:na]     at play.api.Play $$ anonfun $ start $ 1.apply $ mcV $ sp(Play.scala:88)[com.typesafe.play.play_2.10-2.2.0.jar:2.2.0]

有什么想法吗?感谢

1 个答案:

答案 0 :(得分:1)

找到解决方案:

在application.conf上添加以下行:

  • elasticsearch.config.resource = elasticsearch.yml

创建此文件conf / elasticsearch.yml并添加

  • path.data:/ Users / Nicolas / IdeaProjects / lavidaporloscolores / elasticsearchdata

执行此操作后,我必须再次运行“play dist”以使播放读取我的新配置文件