当前位置: 首页 > 知识库问答 >
问题:

Apache Camel与Elasticsearch集成

吴涵育
2023-03-14

我正在从事一个使用Apache Camel和Elasticsearch的项目,我想知道Camel支持哪个版本的Elasticsearch?

我的pom.xml是这样的:

<dependencies>
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-core</artifactId>
  <version>2.18.2</version>
</dependency>

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-elasticsearch</artifactId>
  <version>2.18.2</version>
</dependency>

<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-xmljson</artifactId>
  <version>2.18.2</version>
</dependency>

<dependency>
  <groupId>xom</groupId>
  <artifactId>xom</artifactId>
  <version>1.2.5</version>
</dependency>

但是当我想将文件路由到elasticsearch时,我遇到了以下错误:

Java语言lang.IllegalStateException:收到来自不受支持版本的消息:[2.0.0]最小兼容版本为:[5.0.0]

我发现这个异常是由于使用旧版本的节点或TransportClient造成的。所以我尝试添加elasticsearch依赖项:

    <dependency>
      <groupId>org.elasticsearch</groupId>
      <artifactId>elasticsearch</artifactId>
      <version>5.1.2</version>
    </dependency>

但它给了我一个新的错误:

线程“main”java中出现异常。lang.NoClassDefFoundError:org/elasticsearch/action/WriteConsistencyLevel

所以我想知道。。Apache Camel可以使用哪个版本的ES?

尝试向elasticsearch发送数据的代码:

XmlJsonDataFormat xmlJsonFormat = new XmlJsonDataFormat();

from("file://C:/Projects/?fileName=data.xml&charset=utf-8")
    .marshal(xmlJsonFormat)
    .to("elasticsearch://clusterES?transportAddresses=127.0.0.1:9300&operation=BULK_INDEX&indexName=xml&indexType=account");

共有1个答案

柯立果
2023-03-14

我认为除了骆驼弹性搜索之外,您不需要添加任何其他pom。您似乎更有可能在旧版本上运行TransportClient。您需要找到它并升级TransportClient。

https://www.elastic.co/guide/en/elasticsearch/guide/current/_transport_client_versus_node_client.html

https://discuss.elastic.co/t/received-message-from-unsupported-version-2-0-0-minimal-compatible-version-is-5-0-0/64708

 类似资料:
  • 问题内容: 在我的一个项目中,我计划将ElasticSearch与mysql一起使用。我已经成功安装了ElasticSearch。我能够单独管理ES中的索引。但我不知道如何用mysql实现相同的功能。 我已经阅读了几份文件,但我有点困惑,不清楚。谁能帮帮我吗? 提前致谢。 问题答案: 终于我找到了答案。分享我的发现。 要将ElasticSearch与Mysql一起使用,您将需要Java数据库连接(

  • 问题内容: 我正在尝试将Flink与Elasticsearch 2.1.1集成,我正在使用Maven依赖项 这是我从Kafka队列中读取事件的Java代码(工作正常),但是无论如何,如果我更改了任何相关设置,则事件不会在Elasticsearch中发布,也没有错误,在以下代码中到ElasticSearch的端口,主机名,集群名称或索引名称,然后立即看到错误,但当前它不显示任何错误,也没有在Elas

  • 我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题

  • 问题内容: 我已经安装了Elasticsearch以及Neo4j。我想使用“用于ElasticSearch的Neo4j River插件”插件将Elasticsearch与Neo4j集成。谁能告诉我如何整合这两者。我也在寻找一些用例示例,其中我将清楚地了解noe4j如何与elasticsearch一起工作。 问题答案: 我们应该已经安装了Elasticsearch&Neo4j。要与Neo4j Riv

  • 我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A

  • EdIndexBolt,EsPercolateBolt和Estate允许用户将storm中的数据直接传输到Elasticsearch。 详细说明请参考以下内容。 EsIndexBolt (org.apache.storm.elasticsearch.bolt.EsIndexBolt) EsIndexBolt将tuples直接流入Elasticsearch索。 Tuples以指定的索引和类型组合进行