Для интеграционного тестирования я развернул клиент воспламенения внутри тестового контейнера докера, к которому я подключаюсь с тонким клиентом воспламенения. Затем я создаю тестовый кеш, вызывая getOrCreateCache и сохраняю ссылку на него. Тем не менее, когда я пытаюсь вызвать cache.put (ключ, значение), он выдает исключение ClientConnectionException, в котором говорится, что ошибка в кластере зажигания недоступна.
Исключение ClientConnectionException, которое я получаю.
Наконец, в самом конце моего тестирования у меня есть @AfterClass, который уничтожает тестовый кеш. Тем не менее, эта строка также дает мне воспламенить кластер недоступна ошибка.
Сначала я подумал, что проблема в том, что мой кластер не был активирован. Я пытался исправить это, пытаясь активировать кластер через оба кода, а также через терминал, когда выполнение приостановлено. Однако это не решило мою проблему.
Прежде чем я попытаюсь поместить значение в кеш, я даже распечатываю все кеши, и кеш, кажется, создан, и у меня, кажется, есть ссылка на него, когда я просматриваю отладчик.
Начальная настройка контейнера
igniteServerContainer =
new GenericContainer("apacheignite/ignite:2.5.0")
.withNetwork(network)
.withNetworkAliases("ignite")
.withExposedPorts(10800);
igniteServerContainer.start();
igniteServerContainer.execInContainer("apache-ignite-fabric/bin/control.sh", "--activate");
ignite = Ignition.startClient(
new ClientConfiguration().setAddresses(igniteServerContainer.getContainerIpAddress() + ":" + igniteServerContainer.getFirstMappedPort())
);
//Cache population
ClientCache<String, TreeSet<Item>> cache = ignite.getOrCreateCache(CACHE_NAME);
key = generateKey();
value = generateValue();
cache.put(key, value);
Я следовал онлайн-примерам, и он должен нормально заполнять кэш, но я просто получаю ClientConnectionExceptions, говоря, что кластер недоступен, и я совершенно не уверен, почему он дает мне это после подключения к контейнеру ignite, а затем создавая кеш нормально.