I'm using EMA 3.0.0.L1 in order to connect to Electron.
I tried to switch client library to RSSL_HTTP channel type (from standard RSSL_SOCKET) and got
an exception from EMA library:
Exception in thread "main" java.lang.ClassCastException: com.thomsonreuters.ema.access.HttpChannelConfig cannot be cast to com.thomsonreuters.ema.access.SocketChannelConfig at com.thomsonreuters.ema.access.ChannelCallbackClient.initialize(ChannelCallbackClient.java:596) at com.thomsonreuters.ema.access.OmmConsumerImpl.initialize(OmmConsumerImpl.java:194) at com.thomsonreuters.ema.access.OmmConsumerImpl.<init>(OmmConsumerImpl.java:91) at com.thomsonreuters.ema.access.EmaFactory.createOmmConsumer(EmaFactory.java:158) at com.trgr.discorch.electron.ElectronClient.<init>(ElectronClient.java:249) at com.trgr.discorch.electron.ElectronClient.getInstance(ElectronClient.java:237) at com.trgr.discorch.electron.Application.main(Application.java:25) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
According to the code
case 2: ... connectOptions.tunnelingInfo().tunnelingType("http"); ... connectOptions.unifiedNetworkInfo().interfaceName(((SocketChannelConfig)activeConfig.channelConfig).interfaceName);
we are really trying to cast HttpChannelConfig to SocketChannelConfig.
Example of EmaConfig.xml used in my client:
<ChannelGroup> <ChannelList> <Channel> <Name value="Channel_1"/> <!--<ChannelType value="ChannelType::RSSL_SOCKET"/>--> <ChannelType value="ChannelType::RSSL_HTTP"/> <!-- CompressionType is optional: defaulted to None --> <!-- possible values: None, ZLib, LZ4 --> <CompressionType value="CompressionType::None"/> <GuaranteedOutputBuffers value="5000"/> <!-- ConnectionPingTimeout is optional: defaulted to 30000 --> <ConnectionPingTimeout value="30000"/> <!-- TcpNodelay is optional: defaulted to 1 --> <!-- possible values: 1 (tcp_nodelay option set), 0 (tcp_nodelay not set) --> <TcpNodelay value="1"/> <Host value="localhost"/> <Port value="14002"/> <XmlTraceToStdout value="1"/> </Channel> </ChannelGroup> <ChannelList>