我正在尝试创建elasticsearch插件,并尝试在插件启动时创建一个索引(如果缺少)。
我想问,添加代码片段以创建代码的最佳位置是什么?我将它添加到一个注入绑定中,客户端作为构造函数参数,但出现以下错误:
没有已知的主节点,正在计划重试[2015-05-26 12:03:27289][error][bootstrap]{1.4.1}:初始化失败。。。1) uncategorizedexecutionexception[执行失败]executionexception[java.lang.nullpointerexception]nullpointerexception
我猜客户端还没有准备好处理索引创建请求,我的代码片段如下:
公共类索引器{
private final String indexName;
private final ESLogger LOG;
@Inject
public IndexCreator(Settings settings, Client client) {
this.LOG = Loggers.getLogger(getClass(), settings);
this.indexName = settings.get("metis.index.name", ".metis");
String indexName = ".metis-registry";
IndicesExistsResponse resp = client.admin().indices().prepareExists(indexName).get();
if (!resp.isExists()) {
client.admin().indices().prepareCreate(indexName).get();
}
} }
我把它作为绑定添加到我的模块中
公共类mymodule扩展了abstractmodule{
private final Settings settings;
public MyModule(Settings settings) {
this.settings = Preconditions.checkNotNull(settings);
}
@Override
protected void configure() {
bind(IndexCreator.class).asEagerSingleton();
} }
但是它产生了上面提到的错误,有什么想法吗?在这里发布有关组的帖子
暂无答案!
目前还没有任何答案,快来回答吧!