如何从java代码在jboss cli中启动嵌入式服务器?

时间:2016-06-29 14:18:08

标签: java wildfly-10 jboss-cli embedded-jboss

我想查看一些cli命令,如果它们在java中有效。我无法使用我当前正在运行的配置文件。另外,我根本不能使用正在运行的Wildfly,因为我不得不经常重新加载。

所以我想使用offline-cli(cli with embedded server)

我在做什么:

使用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之后,状态更改为"已部署"。但是,服务无法启动。我没注意它,因为在那之后我可以看到我的应用程序的输出。也许这与它有关?

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的左上角只有那个小小的死轮,表明我还在等待回应。

任何提示?

1 个答案:

答案 0 :(得分:1)

启动嵌入式服务器时,它不会启动任何接口。这包括管理界面。它看起来不像脚本支持允许嵌入式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系统属性。