簡體   English   中英

RemoteTransportException無法反序列化來自流Elastic Search Java API的異常響應

[英]RemoteTransportException Failed to deserialize exception response from stream Elastic Search Java API

用於將文檔插入彈性搜索的Java代碼

Client client = new TransportClient().addTransportAddress(new InetSocketTransportAddress("127.0.0.1", 9300));
        Map<String, Object> json = new HashMap<String, Object>();
        json.put("user","dummy");
        json.put("name","dumm");
        IndexResponse indexResponse = client.prepareIndex("myindex", "mytype").setSource(json).execute().actionGet();
        System.out.println(indexResponse.toString());  

響應: http:// localhost:9200 / _nodes?jvm = true

"pid": ​6797,
"version": "1.8.0_77",
"vm_name": "Java HotSpot(TM) 64-Bit Server VM",
"vm_version": "25.77-b03",
"vm_vendor": "Oracle Corporation",

http:// localhost:9200的響應:

{

    "status": ​200,
    "name": "Sin",
    "cluster_name": "elasticsearch",
    "version": 

    {
        "number": "1.6.2",
        "build_hash": "622039121e53e5f520b5ff8720fdbd3d0cb5326b",
        "build_timestamp": "2015-07-29T09:24:47Z",
        "build_snapshot": false,
        "lucene_version": "4.10.4"
    },
    "tagline": "You Know, for Search"

}

通過Maven添加的依賴

 org.elasticsearch:elasticsearch:1.5.0

我正在使用1.8.0_77進行編譯以編譯我的源代碼,但仍然收到以下異常。 當版本不匹配但我沒有任何版本時,會發生這種類型的異常

  2016-05-06 13:33:15  INFO [http-bio-8080-exec-1] (Log4jESLogger.java:104) - [Josten, Conrad] loaded [], sites []
     2016-05-06 13:33:16  WARN [elasticsearch[Josten, Conrad][transport_client_worker][T#1]{New I/O worker #1}] (Log4jESLogger.java:114) - [Josten, Conrad] Message not fully read (response) for [0] handler future(org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler$1@52d6882a), error [true], resetting
     2016-05-06 13:33:16  INFO [http-bio-8080-exec-1] (Log4jESLogger.java:109) - [Josten, Conrad] failed to get node info for [#transport#-1][inet[/127.0.0.1:9300]], disconnecting...
     org.elasticsearch.transport.RemoteTransportException: Failed to deserialize exception response from stream
    Caused by: org.elasticsearch.transport.TransportSerializationException: Failed to deserialize exception response from stream
        at org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:171)
        at org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:125)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787)
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296)
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462)
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)
        at org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303)
        at org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)
        at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)
        at org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:255)
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312)
        at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88)
        at org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)
        at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
        at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)
    Caused by: java.io.InvalidClassException: failed to read class descriptor
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1603)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1622)
        at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1517)
        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1771)
        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1350)
        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
        at org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:169)
        ... 23 more
    Caused by: java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1718)

根本原因是找不到ElasticsearchException類,請參閱異常中的最后兩行。

elastacsearch版本是1.6.2,但是您將1.5.0 jar依賴項導入到maven中。 這也許是問題所在。

彈性罐的兩個版本之間存在沖突。 maven自動忽略了1.5.0版本,因為lib中存在0.5,它取決於模塊的構建順序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM