我正在建立一个游戏! Framework(2.5)Java应用程序,我想使用Ebean将它连接到ElasticSearch。
首先,我关注the steps here并成功连接到虚拟jdbc(已添加插件,已修改build.sbt
,已添加ebean.default="models.*"
,default.driver = org.h2.Driver
和default.url = "jdbc:h2:mem:play"
application.conf
)。到目前为止一切都很好。
现在,我想将我的连接切换到ElasticSearch而不是jdbc,所以我跟着the steps here,但我无法理解我的生活。到目前为止我做了什么:
已添加到build.sbt
:
libraryDependencies ++= Seq( "org.avaje.ebeanorm" % "avaje-ebeanorm-elastic" % "1.3.1" )
已添加到application.conf
:
ebean.docstore.url="http://localhost:9200"
ebean.docstore.active=true
ebean.docstore.generateMapping=true
ebean.docstore.dropCreate=true`
从application.conf
default.driver = org.h2.Driver
default.url = "jdbc:h2:mem:play"
我无法运行此代码,因为我一直收到此错误:
RuntimeException: com.typesafe.config.ConfigException$WrongType: application.conf @ file:/C:/Users/../conf/application.conf: 357-360: docstore has type OBJECT rather than LIST
我非常感谢任何指向正确的方向。谢谢!
答案 0 :(得分:0)
你可以:
1 - 以编程方式
package models;
import com.avaje.ebean.config.ServerConfig;
import com.avaje.ebean.event.ServerConfigStartup;
public class ConfigOverride implements ServerConfigStartup {
public void onStart(ServerConfig serverConfig) {
serverConfig.getDocStoreConfig().setUrl("http://localhost:9200");
serverConfig.getDocStoreConfig().setActive(true);
serverConfig.getDocStoreConfig().setGenerateMapping(false);
serverConfig.getDocStoreConfig().setDropCreate(false);
serverConfig.getDocStoreConfig().setCreate(false);
serverConfig.getDocStoreConfig().setPathToResources("conf");
}
}
2 - 配置
您必须将ebean.docstore
属性放在ebean.properties
conf
目录中。但不幸的是,我没有设法让应用程序在舞台模式下工作
仅供参考:我在这里开了一个问题: https://github.com/playframework/play-ebean/issues/104