我有一些使用jboss-cli -c --controller=... --file=myscript.cli
运行的脚本。
-c
和--controller
选项很棒,因为我的脚本不知道应该针对哪个服务器运行它,并且可以将其重用于多个服务器。
我现在想使用offline-cli功能来避免端口冲突,并防止服务器在设置蜂鸣器时通过网络发出蜂鸣声。
现在的问题是,要启动嵌入式服务器,我必须使用CLI命令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)。
答案 0 :(得分:1)
如果您使用的是Unix系统,则可以尝试以下操作:
(echo embed-server --std-out=echo --server-config=my-standalone.xml; cat myscript.cli) | jboss-cli.sh
答案 1 :(得分:0)
简单的方法是在脚本中启动嵌入式服务器:
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脚本的结尾退出:)