I seem to be unable to get exceptions from the Transport Client, which of
course is making development really difficult. Yes, I suppose it makes
sense to develop on a local-machine-based node first, but due to technical
reasons (data presiding on clusters, etc.) it's not that practical.
Whenever something seems to go wrong, I simply get the following standard
exception:
"Exception in thread "main"
org.elasticsearch.transport.TransportSerializationException: Failed to
deserialize exception response from stream"
If I read it correctly it implies something along the lines not being able
to get the actual exception from the server? This message is always
preceded by the following warning:
"WARN transport.netty: [Elathan] Message not fully read (response) for [16]
handler
(...).client.transport.action.support.BaseClientTransportAction$1@d92404,
error [true], resetting"
Any advice/help? The full exception message follows...
Exception in thread "main"
org.elasticsearch.transport.TransportSerializationException: Failed to
deserialize exception response from stream
at
org.elasticsearch.transport.netty.MessageChannelHandler.handlerResponseError(MessageChannelHandler.java:267)
at
org.elasticsearch.transport.netty.MessageChannelHandler.process(MessageChannelHandler.java:221)
at
org.elasticsearch.transport.netty.MessageChannelHandler.callDecode(MessageChannelHandler.java:147)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:101)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:274)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:261)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
at
org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:44)
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
The version reported by using 'elasticsearch -v' is: "Elasticsearch
Version: 0.18.7, JVM: 20.0-b11", and the dependency I have is from the
maven repository: "elasticsearch-0.18.7.jar". I get a transport client to
do the heavy-lifting, which I construct with a callable function like this:
public TransportClient getTransportClient() {
if (_transportClient == null) {
Settings s =
ImmutableSettings.settingsBuilder().put("cluster.name",
_config.getClusterName()).build();
_transportClient = new TransportClient(s);
for (String ipAddress : _config.getIpAddress()) {
_transportClient.addTransportAddress(new
I might be wrong, but I don't think version-incompatibility is the issue
here - unless there's something funny about the Maven repository that I
don't know of. Is there some other version number I'll need to check up on?
On Wednesday, 14 March 2012 16:18:49 UTC+2, Clinton Gormley wrote:
"Exception in thread "main"
org.elasticsearch.transport.TransportSerializationException: Failed to
deserialize exception response from stream"
This sounds like you may be using different versions of Elasticsearch.
The client and node versions must be the same
are you using any pluggins on the server side? They typically include jars
that you may not have available with the TransportClient part so exceptions
from pluggins can not be deserialized. Try to check server side logs and
eventually make sure you have missing jars on the client.
The version reported by using 'elasticsearch -v' is: "Elasticsearch
Version: 0.18.7, JVM: 20.0-b11", and the dependency I have is from the
maven repository: "elasticsearch-0.18.7.jar". I get a transport client to
do the heavy-lifting, which I construct with a callable function like this:
public TransportClient getTransportClient() {
if (_transportClient == null) {
Settings s = ImmutableSettings.settingsBuilder().put("
cluster.name", _config.getClusterName()).build();
_transportClient = new TransportClient(s);
for (String ipAddress : _config.getIpAddress()) {
_transportClient.addTransportAddress(new
I might be wrong, but I don't think version-incompatibility is the issue
here - unless there's something funny about the Maven repository that I
don't know of. Is there some other version number I'll need to check up on?
On Wednesday, 14 March 2012 16:18:49 UTC+2, Clinton Gormley wrote:
"Exception in thread "main"
org.elasticsearch.transport.TransportSerializationException:
Failed to
deserialize exception response from stream"
This sounds like you may be using different versions of Elasticsearch.
The client and node versions must be the same
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.