如何从 java 代码在 jboss cli 中启动嵌入式服务器?
How can I start an embedded server in jboss cli from java code?
我想检查一些 cli 命令在 java 中是否有效。我无法使用当前 运行 上的配置文件。此外,我根本不能使用 运行 Wildfly,因为我必须时不时地重新加载。
所以我想使用 offline-cli(带有嵌入式服务器的 cli)
我在做什么:
使用 org.jboss.as.cli.scriptsupport.CLI
连接到 CLi
CLI cli = CLI.newInstance();
cli.connect("127.0.0.1",9990,"admin","admin".toCharArray());
通过cli.cmd
启动嵌入式服务器
cli.cmd("embed-server --server-config=standalone.xml --std-out=discard");
但是除了我一直在等待这个命令完成(?)之外什么都没有发生。
我注意到的一件事是,在将我的应用程序 configuration-management.war
部署到 wildfly 之后,状态更改为 "deployed"。但是随后,服务无法启动。我没有太在意它,因为在那之后我可以看到我的应用程序的输出。或许与此有关?
2016-06-29 15:59:55,333 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 83) WFLYUT0021: Registered web context: /configuration
2016-06-29 15:59:55,364 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0016: Replaced deployment "configuration-management.war" with deployment "configuration-management.war"
2016-06-29 15:59:55,364 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) WFLYCTL0183: Service status report
WFLYCTL0186: Services which failed to start: service jboss.deployment.unit."configuration-management.war".POST_MODULE
2016-06-29 16:00:29,530 INFO [stdout] (default task-1) this is mine!
我的 mozilla firefox 左上角只有那个死神纺车,表明我还在等待回复。
有什么提示吗?
当您启动嵌入式服务器时,它不会启动任何界面。这包括管理界面。看起来脚本支持不允许嵌入式 CLI。不过你可以file a feature request支持它。
但是您可以使用 CLI CommandContext
API 来实现此目的。
final CommandContext commandContext = CommandContextFactory.getInstance().newCommandContext();
commandContext.handle("embed-server --jboss-home=/path/to/wildfly-10.0.0.Final");
commandContext.handle(":read-resource");
commandContext.handle("stop-embedded-server");
请注意某些命令,如 module add
,也需要设置 jboss.home.dir
系统 属性。
我想检查一些 cli 命令在 java 中是否有效。我无法使用当前 运行 上的配置文件。此外,我根本不能使用 运行 Wildfly,因为我必须时不时地重新加载。
所以我想使用 offline-cli(带有嵌入式服务器的 cli)
我在做什么:
使用 org.jboss.as.cli.scriptsupport.CLI
CLI cli = CLI.newInstance();
cli.connect("127.0.0.1",9990,"admin","admin".toCharArray());
通过cli.cmd
启动嵌入式服务器cli.cmd("embed-server --server-config=standalone.xml --std-out=discard");
但是除了我一直在等待这个命令完成(?)之外什么都没有发生。
我注意到的一件事是,在将我的应用程序 configuration-management.war
部署到 wildfly 之后,状态更改为 "deployed"。但是随后,服务无法启动。我没有太在意它,因为在那之后我可以看到我的应用程序的输出。或许与此有关?
2016-06-29 15:59:55,333 INFO [org.wildfly.extension.undertow] (ServerService Thread Pool -- 83) WFLYUT0021: Registered web context: /configuration
2016-06-29 15:59:55,364 INFO [org.jboss.as.server] (DeploymentScanner-threads - 2) WFLYSRV0016: Replaced deployment "configuration-management.war" with deployment "configuration-management.war"
2016-06-29 15:59:55,364 INFO [org.jboss.as.controller] (DeploymentScanner-threads - 2) WFLYCTL0183: Service status report
WFLYCTL0186: Services which failed to start: service jboss.deployment.unit."configuration-management.war".POST_MODULE
2016-06-29 16:00:29,530 INFO [stdout] (default task-1) this is mine!
我的 mozilla firefox 左上角只有那个死神纺车,表明我还在等待回复。
有什么提示吗?
当您启动嵌入式服务器时,它不会启动任何界面。这包括管理界面。看起来脚本支持不允许嵌入式 CLI。不过你可以file a feature request支持它。
但是您可以使用 CLI CommandContext
API 来实现此目的。
final CommandContext commandContext = CommandContextFactory.getInstance().newCommandContext();
commandContext.handle("embed-server --jboss-home=/path/to/wildfly-10.0.0.Final");
commandContext.handle(":read-resource");
commandContext.handle("stop-embedded-server");
请注意某些命令,如 module add
,也需要设置 jboss.home.dir
系统 属性。