2017-02-22 13 views
0

私はApache CamelとElasticsearchを使ってプロジェクトを進めています。私はどのバージョンのElasticsearchをCamelでサポートしているのでしょうか?Apache CamelとElasticsearchとの統合

私のpom.xmlは、次のようになります。私は

java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0]

<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するファイルをするとき、私は次のエラーを持っていますこの例外は、古いバージョンを使用しているノードまたはTransportClientが原因であることが判明しました。だから私はelasticsearch依存関係を追加しよう:

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

をしかし、それは私に新しいエラー与える:

Exception in thread "main" java.lang.NoClassDefFoundError: org/elasticsearch/action/WriteConsistencyLevel

は、だから私は思ったんだけど..私はApacheのキャメルで使用できる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

ESサーバー2.4.3を使用して問題を解決! – Cylon

答えて

1

私はあなたがラクダelasticsearch以外の任意の他のポンポンを追加する必要はないと思います。古いバージョンで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

+0

ラクダリポジトリを簡単に見ると、2つのelasticsearchモジュール* camel-elasticsearch *と* camel-elasticsearch5 *があることがわかります。依存関係を置き換えるのと同じくらい簡単かもしれません。つまり、elasticsearchノードクライアントは、バージョンの違い、それに小さなバージョンであっても非常に賢明なので、まだ動作しない可能性があります。代わりにhttpトランスポートを使用するオプションがあれば、はるかに頑強になります。 –