インターフェースがあれば
public interface TestService {
public String getSomething();
}
とクラス
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";
}
}
このサービスを ignite サーバー ノードにデプロイします。
// Deploy services only on server nodes.
IgniteServices serverSvcs = ignite.services(ignite.cluster().forServers());
// Deploy cluster singleton.
serverSvcs.deployClusterSingleton("TestService", new TestServiceImpl());
そして Ignite クライアントノードはサービスを取得しようとします
TestService testSvc = mIgnite.services().serviceProxy("TestService", TestService.class, false);
クライアント ノードに「TestServiceImpl」クラスが含まれていない場合、
メッセージ付きの例外をキャッチします: 「アンマーシャリング用の指定されたクラスローダーを持つクラスが見つかりませんでした (すべてのノードですべてのクラスの同じバージョンが利用可能であることを確認するか、ピアクラスローディングを有効にしてください)」、
Ignite クライアント ノードに TestServiceImpl クラスが必要ですか?