2

ElasticSearch プラグインに沿って ES 検索を実行できるように、ES 1.3.1 プラグインでクライアント API を実行することが何とか可能かどうか疑問に思っていましたか?

次のコードを試しました:

package org.elasticsearch.plugin.example;

import org.elasticsearch.common.collect.Lists;
import org.elasticsearch.common.inject.Module;
import org.elasticsearch.plugins.AbstractPlugin;

import java.util.Collection;

import org.elasticsearch.client.Client;
import org.elasticsearch.node.Node;
import org.elasticsearch.node.NodeBuilder;


public class ExamplePlugin extends AbstractPlugin {

    @Override public String name()        { return "example-plugin"; }
    @Override public String description() { return "Example Plugin Description"; }

    @Override public Collection<Class<? extends Module>> modules() {

        //Trying to create a client to perform searching
        Client client = NodeBuilder.nodeBuilder().client(true).node().client();
        //returns error java.lang.AutoCloseable [not found];

        Collection<Class<? extends Module>> modules = Lists.newArrayList();
        modules.add(ExampleRestModule.class);
        return modules;
    }
}

しかし、次のコンパイル エラーが返されます。

[ERROR] class file for java.lang.AutoCloseable not found

それを機能させる方法についてのアイデアはありますか?

インストールの詳細:

$ elasticsearch -v
Version: 1.3.1, Build: 2de6dc5/2014-07-28T14:45:15Z, JVM: 1.8.0_11

$ java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.11-b03, mixed mode)

ソース:

file を含む現在のファイル構造pom.xmlは、ここにあります

4

2 に答える 2

3

pom.xml ファイルは、コンパイルする Java のバージョンを指定していません。デフォルトは1.3だと思います(私は知っていますが、不自由です)。そのバージョンには確かにjava.lang.AutoCloseableがありません。

とにかく、これを pom.xml の plugins セクションに追加してみてください:

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>

また、プラグインをコンパイルするシステムに Java 1.8 をインストールし、JAVA_HOME をインストールのルート パスに設定する必要があります。

したがって、Java バイナリが /home/user/java/bin/java にある場合、JAVA_HOME 環境変数を「/home/user/java」に設定する必要があります。

于 2014-09-02T07:47:02.593 に答える