Archived

This forum has been archived. Please start a new discussion on GitHub.

libIcee 1.3 and Ice 3.5 are incompatable : protocol error: unsupported encoding versi

Hi there,

I have installed my application on an arm device, which compiled libicee v1.3 ... all using openembedded.

On my desktop I have Ice v3.5.

When I run on the embedded device to itself, there is no problem and the application works.

When I try to connect from my desktop to the embedded device, the embedded deivce complains about protocol error: unsupported encoding version: 1.1

I get the following errors :

On the embedded system ...

ORBTest: warning: connection exception:
LocalException.cpp:1237: Ice::ProtocolException:
protocol error: unsupported encoding version: 1.1
(can only support protocols compatible with version 1.0)
local address = 192.168.11.2:10000
remote address = 192.168.11.1:43134
ORBTest: warning: connection exception:
LocalException.cpp:1237: Ice::ProtocolException:
protocol error: unsupported encoding version: 1.1
(can only support protocols compatible with version 1.0)
local address = 192.168.11.2:10000
remote address = 192.168.11.1:43135

On the desktop system ...

-! 05/13/13 17:48:35.882 warning: connection exception:
TcpTransceiver.cpp:212: Ice::ConnectionLostException:
connection lost: recv() returned zero
local address = 192.168.11.1:43134
remote address = 192.168.11.2:10000
-! 05/13/13 17:48:35.886 warning: connection exception:
TcpTransceiver.cpp:212: Ice::ConnectionLostException:
connection lost: recv() returned zero
local address = 192.168.11.1:43135
remote address = 192.168.11.2:10000
terminate called after throwing an instance of 'Ice::ConnectionLostException'
what(): TcpTransceiver.cpp:212: Ice::ConnectionLostException:
connection lost: recv() returned zero
Aborted (core dumped)
flatmax@monstilationax2:~/work/BVA/HighAc

Comments

  • benoit
    benoit Rennes, France
    Hi,

    Yes, this is expected. By default Ice 3.5 uses the new 1.1 encoding if the stringified proxy doesn't specify any encoding version. Since Ice-E 1.3 only supports the 1.0 encoding, it complains about receiving a request with the 1.1 encoding from the Ice 3.5 client.

    Assuming you create the proxy from a string, you should either explicitly specify -e 1.0 in the stringified proxy or set the Ice.Default.EncodingVersion=1.0 property to ensure all stringified proxies will be created with the 1.0 encoding.

    Please see the New in Ice 3.5 Encoding Version 1.1 technical article for more information on this.

    Cheers,
    Benoit.
  • Thanks, that works.

    I should have read the f. manual !

    Ice::InitializationData initData; // generate required initialisation data
    initData.properties->setProperty("Ice.Default.EncodingVersion", "1.0");