如何使用 Java 代码使用 jboss-cli 命令将 EAR 文件部署到 wildfly-17.0.1 服务器
Posted
技术标签:
【中文标题】如何使用 Java 代码使用 jboss-cli 命令将 EAR 文件部署到 wildfly-17.0.1 服务器【英文标题】:How to deploy an EAR file to wildfly-17.0.1 server with jboss-cli command using Java code 【发布时间】:2020-02-04 21:09:27 【问题描述】:我想使用 jboss-cli 将一个 ear 文件部署到 wildfly-17.0.1 服务器。我尝试使用 Java 代码执行命令,但总是出错,这是我的代码:
Object instance = ReflectionUtil.getClass("org.jboss.as.cli.CommandContextFactory").getMethod("getInstance").invoke(null);
ctx = instance.getClass().getMethod("newCommandContext",String.class,String.class,char[].class).invoke(instance,"localhost:"+server.getProperty(SERVER_PORT), server.getProperty(SERVER_USER),server.getProperty(SERVER_PWD).toCharArray());
m = ctx.getClass().getMethod("connectController");
m.setAccessible(true);
m.invoke(ctx);
execute(ctx, "deploy " + earPath + projectName + ".ear");
我总是收到这个错误:
"failure-description" => "WFLYCTL0158: Operation handler failed: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0"
【问题讨论】:
【参考方案1】:core 实用程序是 wildfly-maven-plugin
的一部分,可用于以编程方式部署内容。这可能比反射更友好一些。
【讨论】:
感谢您的回答,但我需要使用反射,我需要修复此错误以上是关于如何使用 Java 代码使用 jboss-cli 命令将 EAR 文件部署到 wildfly-17.0.1 服务器的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Dockerfile 在启动 docker 容器上运行 jboss-cli
如何使用 jboss-cli 在 WildFly 17 中创建 JMS 队列