1

インターフェースがあれば

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 クラスが必要ですか?

4

1 に答える 1