Ich versuche, einen Infinispan Server mit HotRod-Bibliothek in C++ zugreifen, weil ich nicht mit Java vertraut bin, aber ich habe Ausnahme und weiß nicht weiter.Access Infinispan Server mit HotRod C++ löst Ausnahme
Der Quellcode ist:
#include "infinispan/hotrod/ConfigurationBuilder.h"
#include "infinispan/hotrod/RemoteCacheManager.h"
#include "infinispan/hotrod/RemoteCache.h"
#include <iostream>
#include <string>
int main(int argc, char **argv) {
infinispan::hotrod::ConfigurationBuilder cb;
cb.addServer().host("192.168.1.1").port(11222);
infinispan::hotrod::RemoteCacheManager cm(cb.build());
infinispan::hotrod::RemoteCache<std::string, std::string> cache = cm.getCache<std::string, std::string>("dCache");
cm.start();
std::cout << cache.size() << std::endl;
cm.stop();
return 0;
}
und was ich habe ist:
terminate called after throwing an instance of 'infinispan::hotrod::HotRodClientException'
what(): scala.MatchError: 24 (of class java.lang.Byte)
Aborted
ps. GDB backtrace zeigt an, dass der Fehler in der Zeile std::cout << cache.size() << std::endl;
aufgetreten ist.
Das sieht wie ein Mismatch in Protokoll. Welche Version von Client und Server verwenden Sie? Bitte prüfen Sie das Serverprotokoll, die Ausnahme sollte dort mit voller Stack-Trace protokolliert werden. –
@Flavius Client ist 8.0.0.CR2 und Server ist 6.0.0.Final. Ich überprüfte das Serverprotokoll und bekam eine Menge Dinge wie '16: 28: 55.420 FEHLER [org.infinispan.server.hotrod.HotRodDecoder] (HotRodServerWorker-223) ISPN005003: Ausnahme berichtete: org.infinispan.server.hotrod.RequestParsingException: Header kann nicht analysiert werden und ERROR [org.infinispan.server.hotrod.HotRodDecoder] (HotRodServerWorker-226) ISPN005009: Unerwarteter Fehler vor dem Lesen von Request-Parametern: scala.MatchError: 24 (of class java.lang.Byte) ' –
Gibt das Serverprotokoll an, welche Version des Protokolls der Client verwendet? C++ Client sollte nur 1.2 und niedriger wissen, aber ich kann falsch liegen. –