Как узнать, Gigaspace подключен в приложении Java при запуске
Я использую приложение Spring, и мое gigaspace подключается при запуске. Я не получаю никаких исключений, если Gigaspace не работает.
@Override
public void onContextRefreshed(ContextRefreshedEvent event) {
String gigaSpaceURL = null;
LOGGER.info("({}) initializing gigaspaces client", getName());
try {
initGSProxy();
Iterator<Map.Entry<ConfiguredSpace, Space>> entries = spaces.entrySet().iterator();
while (entries.hasNext()) {
Map.Entry<ConfiguredSpace, Space> entry = entries.next();
LOGGER.info("({}) initialing space- key=" +
entry.getKey() + ", value = " + entry.getValue(),
getName());
// TODO : Need to verify Boolean Value Input
gigaspace.createSpace(entry.getKey().name(),
entry.getValue().getURL(), false);
gigaSpaceURL = entry.getValue().getURL();
}
} catch (Exception e) {
return;
}
GenericUtil.updateLogLevel("INFO",
"com.renovite.ripps.ap.gs.Spaces");
LOGGER.info("\n************************************\nConnected with Gigaspace successfully:URL:" + gigaSpaceURL
+ "\n************************************\n");
GenericUtil.updateLogLevel("ERROR",
"com.renovite.ripps.ap.gs.Spaces");
}
1 ответ
Возьмите ссылку на Gigaspace с помощью метода getGigaSpace(), который принимает пробел в качестве аргумента. Если он генерирует исключение во время выполнения, это означает, что приложение не может подключиться с указанным URL-адресом Gigaspace.
Или более элегантным способом: в вашем прокси-классе Gigaspace (который на самом деле реализует IGigaspace) переопределите метод getGigaSpace() так, чтобы он возвращал ноль, если подключение невозможно.
/ ** Пространства. */ private transient Map space = new HashMap<> ();
@ Переопределить общедоступный GigaSpace getGigaSpace (String spaceKey) {
if(spaces.get(spaceKey) != null){
return spaces.get(spaceKey).getGigaSpace();
}
return null;
}
space - это карта всех URL-адресов, которые зарегистрированы в Gigapsace. Если никто не зарегистрирован, мы возвращаем null в вышеуказанном методе.