【问题标题】:Elasticsearch Java API Error: java.lang.NoSuchMethodError: com.carrotsearch.hppc.ObjectHashSet.equals(Ljava/lang/Object;Ljava/lang/Object;)ZElasticsearch Java API 错误:java.lang.NoSuchMethodError:com.carrotsearch.hppc.ObjectHashSet.equals(Ljava/lang/Object;Ljava/lang/Object;)Z
【发布时间】:2017-09-28 20:43:50
【问题描述】:

我正在尝试使用 Java 连接到 Elasticsearch。这是我的代码的一部分:

private static TransportClient client = null;
    public BooleanQuery() {
        try {
            client = new PreBuiltTransportClient(Settings.EMPTY);

            client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

        } catch (UnknownHostException e) {
            e.printStackTrace();
        }
    }

当我运行这个程序时,我得到了以下异常:

Exception in thread "main" java.lang.NoSuchMethodError: com.carrotsearch.hppc.ObjectHashSet.equals(Ljava/lang/Object;Ljava/lang/Object;)Z
    at com.carrotsearch.hppc.ObjectHashSet.add(ObjectHashSet.java:159)
    at com.carrotsearch.hppc.ObjectHashSet.addAll(ObjectHashSet.java:189)
    at com.carrotsearch.hppc.ObjectHashSet.from(ObjectHashSet.java:544)
    at org.elasticsearch.index.mapper.MapperService.<clinit>(MapperService.java:101)
    at org.elasticsearch.common.settings.IndexScopedSettings.<clinit>(IndexScopedSettings.java:60)
    at org.elasticsearch.common.settings.SettingsModule.<init>(SettingsModule.java:69)
    at org.elasticsearch.client.transport.TransportClient.buildTemplate(TransportClient.java:138)
    at org.elasticsearch.client.transport.TransportClient.<init>(TransportClient.java:265)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:130)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:116)
    at org.elasticsearch.transport.client.PreBuiltTransportClient.<init>(PreBuiltTransportClient.java:106)
    at com.accenture.poc.elasticsearch.BooleanQuery.<init>(BooleanQuery.java:29)
    at com.accenture.poc.DataProcessor.main(DataProcessor.java:134)

这是我的 pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.accenture</groupId>
    <artifactId>poc</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>

    <name>poc</name>
    <url>http://maven.apache.org</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>19.0</version>
        </dependency>
        <dependency>
            <groupId>info.debatty</groupId>
            <artifactId>java-string-similarity</artifactId>
            <version>RELEASE</version>
        </dependency>

        <!-- Dependencies of Wiki -->
                <!-- https://mvnrepository.com/artifact/org.fusesource.jdbm/jdbm -->
        <dependency>
            <groupId>org.fusesource.jdbm</groupId>
            <artifactId>jdbm</artifactId>
            <version>2.0.1</version>
        </dependency>
        <dependency>
            <groupId>org.bluestemsoftware.open.maven.tparty</groupId>
            <artifactId>xerces-impl</artifactId>
            <version>2.9.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.ant</groupId>
            <artifactId>ant-compress</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.7.7</version>
        </dependency>

        <dependency>
            <groupId>org.apache.marmotta</groupId>
            <artifactId>marmotta-loader-hbase</artifactId>
            <version>3.3.0</version>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.5</version>
        </dependency>
    <!-- Elasticsearch dependency -->
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>5.6.2</version>
            </dependency>
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.9.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
        <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.9.1</version>
        </dependency>
    </dependencies>

</project>

错误指向“client = new PreBuiltTransportClient(Settings.EMPTY);”行。我不确定这意味着什么?我在网上没有找到与此相关的任何内容。任何帮助表示赞赏。

【问题讨论】:

  • 你也可以发布你的 pom.xml 吗?
  • @pleft 我已经添加了我的 pom.xml。它具有与我的 eclipse 项目的其他方法相关的其他依赖项

标签: java elasticsearch


【解决方案1】:

运行mvn dependency:tree -Dverbose 显示com.carrotsearch:hppc:jar 有2 个版本,(0.4.2, 0.7.1)。后一个附带了弹性搜索依赖项的添加。第一个来自org.apache.marmotta:marmotta-loader-hbase:jar

所以我怀疑您的构建中有两个版本的 hppc.jar,因为当您添加弹性搜索依赖项时,您没有执行清理 (mvn clean)。

所以尝试重新构建您的项目,然后再试一次:

mvn clean package

【讨论】:

  • 当我执行 mvn clean package 时,我收到如下编译错误:[ERROR] COMPILATION ERROR : [INFO] -------------------- ------------------------------------------ [ERROR] 读取 C:\ 时出错用户\njaiswal\.m2\repository\org\apache\ant\ant\1.10.1\ant-1.10.1.jar;无效的 LOC 标头(错误的签名)
  • 这意味着ant jar被损坏了。从你的 m2 repo 中删除 ant 文件夹,然后让 maven 重新下载。
猜你喜欢
  • 1970-01-01
  • 2012-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-06
  • 2014-12-26
相关资源
最近更新 更多