1

Camel 클라이언트 프로젝트에서 원격 신축 검색 클러스터를 치고 "java.lang.IllegalStateException : 지원되지 않는 버전으로부터받은 메시지 : [[ 2.0.0] 호환 가능한 최소 버전은 [5.0.0] "입니다. 코드 스 니펫을 찾으십시오.Elastic 검색 버전 문제가있는 Camel 지원되지 않는 버전 : [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-version는 부모 치어 ( https://github.com/apache/camel/blob/camel-2.18.x/parent/pom.xml)에서 2.3.5로 설정 때문에 그것이 것 추론하기 위하여 서있다
<dependency> 
    <groupId>org.elasticsearch</groupId> 
    <artifactId>elasticsearch</artifactId> 
    <version>${elasticsearch-version}</version> 
</dependency> 

이 메시지와 함께 실패하십시오.

불행히도 5.x 용 일종의 elasticsearch API 또는 elasticsearch를 다운 그레이드하는 데 적응해야 할 것 같습니다. 그것은 꽤 불행한 일입니다.

편집 : 최근 커밋에서 2.4.3 (https://github.com/apache/camel/blob/8c434ef27742aa85d1763b1c3d4ab4fe9d8428a6/parent/pom.xml)으로 설정되어있어 따라 잡기 위해 잠시 기다려야 할 수도 있습니다. 2.4는 자신의 문서에 따르면 5.x 이전의 최신 버전 (이상한 번호 체계는 무엇인가?)이므로 너무 길지 않을 수도 있고 다음 릴리스 일 수도 있지만 숨을 멈추지는 않을 것입니다.

+0

자세한 설명을 보내 주셔서 감사 드리며 이제 낙타의 탄성 검색 버전 불일치에 대해 분명히 드러납니다. 마지막으로이 대신 Transport 클라이언트를 사용하기로 결정했습니다. – Som

+0

그래, 나는 elasticsearch Java API를 사용하고 낙타에서 bean 내에서 호출하는 것에 대해 생각하고 있었다. 그것이 최선의 방법인지 아닌지는 잘 모르겠지만 적어도 작동해야합니다. –

+0

또한 이것을 허용 된 답변으로 표시 하시겠습니까? –