繁体   English   中英

专用服务器上的elasticsearch RemoteTransportException

[英]elasticsearch RemoteTransportException on dedicated server

我正在尝试将Elasticsearch与生产集成,但遇到以下异常。 我在两个服务器1.7.0_40中都使用的jvm

2015-01-12 21:29:06调试净值:94-[Whitemane,Aelfyre]已连接到节点[[#transport#-1] [inet [/xxx.xxx.xx.xxx:9300]]] 2015-01 -12 21:29:06 WARN净值:114-[Whitemane,Aelfyre]消息未完全读取(响应)[63]处理程序的未来(org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler$1@4e70a141),错误[true ],重置2015-01-12 21:29:06信息传输:109-[Whitemane,Aelfyre]无法获取[#transport#-1] [inet [/xxx.xxx.xx.xxx:9300]的节点信息],正在断开连接。org.elasticsearch.transport.RemoteTransportException:无法反序列化来自流的异常响应原因:org.elasticsearch.transport.TransportSerializationException:无法反序列化来自org.elasticsearch.transport.netty.MessageChannelHandler的流的异常响应。 org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:125)上的handlerResponseError(MessageChannelHandler.java:171)在org.elasticsearch.common.netty.channel上 org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)上的.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)在org.elasticsearch.common.netty.channel.DefaultChannelPipeline $ DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline .java:787),位于org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:296),位于org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462 )在org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443)在org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) )于org.elastics的org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560)的org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:268)上的earch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555)在org.elasticsearch.common.netty.channel上。 org.elasticsearch.common.netty.channel.socket.nio的Channels.fireMessageReceived(Channels.java:255)在org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88)在org.elasticsearch.common.netty.channel.socket.nio。 org.elasticsearch.common.netty.channel.socket.nio上的AbstractNioWorker.process(AbstractNioWorker.java:107)位于org.elasticsearch.common.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(的org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178)的AbstractNioWorker.run(AbstractNioWorker.java:88) org.elasticsearch.common.netty.util.internal.DeadLockProofWorker的ThreadRenamingRunnable.java:108)java.util.concurrent.ThreadPo的$ 1.run(DeadLockProofWorker.java:42) olExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)at java.lang.Thread.run(Thread.java:724)原因:java.io .InvalidClassException:无法读取java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java的java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)处的java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1601)的类描述符:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java .io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1620)at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1515)at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1769)at java.io.ObjectInputStream。 java.io.Objec上的readObject0(ObjectInputStream.java:1348) org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:169)处的tInputStream.readObject(ObjectInputStream.java:370)... 23更多原因:java.lang.ClassNotFoundException:org.elasticsearch.ElasticsearchException at java .net.URLClassLoader $ 1.run(URLClassLoader.java:366)at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(本机方法)at java.net.URLClassLoader.findClass (URLClassLoader.java:354)在java.lang.ClassLoader.loadClass(ClassLoader.java:424)在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:308)在java.lang.ClassLoader.loadClass(ClassLoader。 org.elasticsearch.common.io.ThrowableObjectInputStream.loadClass(ThrowableObjectInputStream.java:93)处org.elasticsearch.common.io.ThrowableObjectInputStream.readClassDescriptor(ThrowableObjectInputStream.java:67)处java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1599)...还有34个

从根异常java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException和任何与Elasticsearch 集成 java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchExceptionjava.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException集成)的java.lang.ClassNotFoundException: org.elasticsearch.ElasticsearchException来看,我猜测是:

  • 您在“生产”系统的类路径中缺少elasticsearch.jar ,或者您认为它在类路径中,但实际上并非如此
  • 您正在使用不同的Elasticsearch版本(服务器具有一个版本,您的“生产”系统使用另一版本的ES jar

在Elasticsearch 0.20.5中,这是有问题的类: https : //github.com/elasticsearch/elasticsearch/blob/v0.20.5/src/main/java/org/elasticsearch/ElasticSearchException.java 请注意该类的名称ElasticSearchException (大写字母“ S”)。

在Elasticsearch 1.4.2中,更改了类名称: https : //github.com/elasticsearch/elasticsearch/blob/v1.4.2/src/main/java/org/elasticsearch/ElasticsearchException.java 请注意该类的名称ElasticsearchException (小写的“ s”)。

因此,您确实需要在两个服务器上使用相同的Elasticsearch版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM