#java #jboss #wildfly
#java #jboss #wildfly
Вопрос:
Мой автономный wildfly запущен на другом компьютере, и я использую его IP-адрес для подключения в моем приложении. Моя цель — убедиться, что он запущен, и установить состояние клиента на основе ответа. Для этого я просто отправляю запрос через ejb, и если я получаю сообщение «Не удалось подключиться к какому-либо серверу», я устанавливаю состояние клиента в автономное. Есть ли способ сделать это лучше? Может быть, API cli для отправки команды для проверки состояния развертывания war? Я знаю, что мы можем проверить это с помощью клиента jboss на компьютере, если мы подключены deployment-info --name=App.war
. Но я ничего не смог найти для своего случая. Распространяется ли org.jboss.as.cli.impl wildfly-core на подобный случай?
Ответ №1:
Вы бы хотели использовать ModelControllerClient
API для выполнения запроса. Вы можете прочитать ресурс развертывания, чтобы получить информацию. Что-то вроде:
try (ModelControllerClient client = ModelControllerClient.Factory.create(address, 9990)) {
final ModelNode address = Operations.createAddress("deployment", "App.war");
final ModelNode op = Operations.createReadResourceOperation(address);
op.get("include-runtime").set(true);
final ModelNode outcome = client.execute(op);
if (Operations.isSuccessfulOutcome(outcome)) {
// do something
} else {
throw new RuntimeException(Operations.getFailureDescription(outcome).asString());
}
}
Это должно вернуть аналогичную информацию в команду CLI.