0

我有一些我使用运行的脚本jboss-cli -c --controller=... --file=myscript.cli。和选项很棒-c--controller因为我的脚本不知道它应该在哪个服务器上运行并且可以重复用于多个服务器。

我现在想使用离线 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)。

4

2 回答 2

2

如果您使用的是 Unix 系统,您可以尝试以下操作:

(echo embed-server --std-out=echo  --server-config=my-standalone.xml; cat myscript.cli) | jboss-cli.sh 
于 2019-04-02T21:20:03.447 回答
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 脚本结束时退出 :)

于 2019-03-29T14:00:46.673 回答