#wildfly #jboss-cli
#wildfly #jboss-cli
Вопрос:
У меня есть несколько скриптов, которые я запускаю с помощью jboss-cli -c --controller=... --file=myscript.cli
. Опции -c
и --controller
великолепны, потому что мой скрипт не знает, на каком сервере он должен быть запущен, и может быть повторно использован для нескольких серверов.
Теперь я хочу использовать функцию offline-cli, чтобы избежать конфликтов портов и предотвратить доступ к серверам через сеть во время их настройки. Теперь моя проблема в том, что для запуска встроенного сервера я должен использовать CLI-command embed-server
, но я не хочу добавлять эту команду в свои скрипты, потому что скрипты не должны знать имя XML-файла конфигурации сервера.
К сожалению, я не могу использовать оба --command="embed-server --server-config=my-standalone.xml"
и --file=myscript.cli
одновременно, потому что CLI жалуется на:
Only one of '--file', '--commands' or '--command' can appear as the argument at a time.
Еще одна вещь, которую я пробовал, была: --commands="embed-server --server-config=my-standalone.xml,run-batch --file="myscript.cli"
но это тоже не работает, потому что мои скрипты содержат некоторую логику if-else, например:
if (outcome == success) of /subsystem=iiop-openjdk:read-resource()
/subsystem=iiop-openjdk:remove()
end-if
И, к сожалению, условная логика не поддерживается в пакетном режиме (см.https://bugzilla.redhat.com/show_bug.cgi?id=1083176 ).
Ответ №1:
простой способ — запустить встроенный сервер в вашем скрипте :
embed-server --std-out=echo --server-config=standalone-full.xml
/subsystem=messaging-activemq/server=default/jms-queue=inQueue:add(durable=true, entries=["/queue/inQueue","java:jboss/exported/queue/inQueue"])
/subsystem=messaging-activemq/server=default/jms-queue=outQueue:add(durable=true, entries=["/queue/outQueue","java:jboss/exported/queue/outQueue"])
quit
Не забудьте завершить работу в конце вашего скрипта cli 🙂
Комментарии:
1. Я процитирую себя: я не хочу добавлять эту команду в свои скрипты, потому что скрипты не должны знать имя XML-файла конфигурации сервера.
Ответ №2:
Если вы используете систему Unix, вы можете попробовать что-то вроде этого:
(echo embed-server --std-out=echo --server-config=my-standalone.xml; cat myscript.cli) | jboss-cli.sh
Комментарии:
1. Это довольно обходной путь, к сожалению, я использую системы Linux и Windows, но аналогичный обходной путь, вероятно, возможен и в Windows (хотя я недостаточно разбираюсь в оболочке Windows, чтобы быть уверенным), поэтому я мог бы использовать это как запасной вариант.