1

Я пытаюсь удалять удаленный эластичный кластер поиска из моего проекта клиента верблюда и получать ошибку как «java.lang.IllegalStateException: получено сообщение из неподдерживаемой версии: [ 2.0.0] минимальная совместимая версия: [5.0.0] ". Найдите фрагмент кода.Camel with Elastic версия для поиска версия неподдерживаемой версии: [2.0.0]

pom.xml

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

blueprint.xml

<route id="timerToLog"> 
     <from uri="timer:foo?period=5000" /> 
     <setBody> 
      <method ref="helloBean" method="hello" /> 
     </setBody>   
     <to uri="elasticsearch://test-poc?ip=127.0.01&amp;port=9300&amp;operation=INDEX&amp;indexName=testindex&amp;indexType=sampletxn" />   
    </route> 

журнала ошибок от узла: -

[2017-01-09T18:04:14,887][WARN ][o.e.t.n.Netty4Transport ] [127.0.01] exception caught on transport layer [[id: 0x5c33c900, L:/127.0.01:9300 - R:/10.132.245.194:64393]], closing connection 
java.lang.IllegalStateException: Received message from unsupported version: [2.0.0] minimal compatible version is: [5.0.0] 
    at org.elasticsearch.transport.TcpTransport.messageReceived(TcpTransport.java:1236) ~[elasticsearch-5.1.1.jar:5.1.1] 
    at org.elasticsearch.transport.netty4.Netty4MessageChannelHandler.channelRead(Netty4MessageChannelHandler.java:74) ~[transport-netty4-5.1.1.jar:5.1.1] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293) [netty-codec-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:280) [netty-codec-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:396) [netty-codec-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:248) [netty-codec-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:86) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:351) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1334) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:373) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:359) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:926) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:129) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:651) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:536) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:490) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:450) [netty-transport-4.1.6.Final.jar:4.1.6.Final] 
    at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:873) [netty-common-4.1.6.Final.jar:4.1.6.Final] 
    at java.lang.Thread.run(Thread.java:745) [?:1.8.0_111] 

Может кто-нибудь предложить, пожалуйста, как решить эту проблему.

ответ

2

Так что это немного образованное предположение, но на самом деле я натолкнулся на ту же самую проблему с теми же версиями для обоих. Я считаю, что это несоответствие версии, присущее верблюду 2.18.1 и последней версии elasticsearch. Я скачал исходники верблюжьего elasticsearch и посмотрел в верхнем ПОМ уровня и увидел это:

<dependency> 
    <groupId>org.elasticsearch</groupId> 
    <artifactId>elasticsearch</artifactId> 
    <version>${elasticsearch-version}</version> 
</dependency> 

Переменная elasticsearch-version устанавливается 2.3.5 в родительском ПОМ (https://github.com/apache/camel/blob/camel-2.18.x/parent/pom.xml), поэтому само собой разумеется, что это будет с этим сообщением.

К сожалению, похоже, что нам придется либо приспособиться к использованию какого-либо API elasticsearch для 5.x, либо для понижения рейтинга elasticsearch. Это очень неудачно.

Редактировать: И теперь похоже, что он установлен на 2.4.3 (https://github.com/apache/camel/blob/8c434ef27742aa85d1763b1c3d4ab4fe9d8428a6/parent/pom.xml) в последнем фиксации, поэтому нам, возможно, придется немного подождать, чтобы они наверстали упущенное. 2.4 - это последняя версия до 5.x в соответствии с их документами (какая странная система нумерации?), Поэтому она может быть не слишком длинной, может быть, и в следующем выпуске, но я не задержу дыхание.

+0

Большое спасибо за подробное объяснение, и теперь я понимаю об этом несоответствии версии поиска верблюжьей резинки. Наконец, я решил пойти с Transport client вместо этого. – Som

+0

Да, я думал о том, как использовать API Java elasticsearch, и называть его в bean-компоненте от верблюда. Я не уверен, что это лучший способ пойти или нет, но по крайней мере он должен работать. –

+0

Кроме того, не могли бы вы отметить это как принятый ответ? –