Wenn ich eine SchnittstelleÜber Apache Ignite Service Implementation
public interface TestService {
public String getSomething();
}
und eine Klasse
import org.apache.ignite.services.Service;
import org.apache.ignite.services.ServiceContext;
public class TestServiceImpl implements Service, TestService {
@Override
public void init(ServiceContext ctx) throws Exception {
}
@Override
public void execute(ServiceContext ctx) throws Exception {
}
@Override
public void cancel(ServiceContext ctx) {
}
@Override
public String getSomething() {
return "HelloWorld";
}
}
ich mit
// Deploy services only on server nodes.
IgniteServices serverSvcs = ignite.services(ignite.cluster().forServers());
// Deploy cluster singleton.
serverSvcs.deployClusterSingleton("TestService", new TestServiceImpl());
diesen Dienst auf Ignite Server-Knoten implementieren und Client-Knoten Ignite versuchen Sie, den Service
zu bekommenWenn der Client-Knoten die „TestServiceImpl“ Klasse nicht enthält,
Ausnahme mit der Meldung fangen: „Fehler für unmarshalling (stellen Sie sicher gleichen Versionen aller Klassen Klasse mit bestimmten Klassenlader zu finden sind verfügbar auf allen Knoten oder Peer-Class-Laden aktivieren) ",
Ist es notwendig, dass zünden Clientknoten muss die Klasse TestServiceImpl?
Got it, vielen Dank für Ihre Antwort! –
Wann wird es in Maven Central Repository veröffentlicht? –
Ich habe ein ähnliches Problem mit 1.7 gesehen. Mein Ignite-Cluster verwendet Dienste, die nicht im Klassenpfad von Clientknoten enthalten sind. Ich habe gesehen, dass die Clientknoten versuchen, diese Dienste auszuführen, und mit ClassNotFoundException fehlschlagen. –