Jboss CLI 应用程序部署

Posted

技术标签:

【中文标题】Jboss CLI 应用程序部署【英文标题】:Jboss CLI application deployment 【发布时间】:2018-06-12 07:57:27 【问题描述】:

我需要使用 CLI 在 JBOSS 中部署 WAR 文件,并希望发送应用程序中使用的 JVM 命令行参数。用于部署的 CLI 命令是:

deploy --name=xxx-api.war --server-groups=server-group1 /war/locn/xxx-api-$rel_name.war

我需要在下面传递一个java命令行参数:-Dspring.profiles.active=enableScheduler

怎么做?

【问题讨论】:

【参考方案1】:

你不能用 jboss-cli deploy 命令设置系统属性。当你运行 jboss-cli 时,JVM 已经启动。您应该在 $JBOSS_HOME/bin/standalone.conf(或 domain.conf)中设置属性。或者您可以运行 java 代码来设置系统属性。您可以定义一个在启动时加载的 servlet,并在 servlet init 方法中设置系统属性。

@WebServlet(name = "Prop", urlPatterns = "/Prop", loadOnStartup = 1)
public class SetProperies extends HttpServlet 

@Override
public void init() throws ServletException 
    System.setProperty("spring.profiles.active", "enableScheduler");

【讨论】:

【参考方案2】:

你试过了吗?

/server-group=server-group1/system-property=spring.profiles.active:add(boot-time=false, value="enableScheduler")

【讨论】:

boot-time 是做什么的?如果设置为真会有什么后果? boot-time 属性用于域模式,以使主机控制器在启动时间属性设置为 true 的 JVM 调用上生成具有系统属性的新 EAP 实例。它在域模式下没有缺点。

以上是关于Jboss CLI 应用程序部署的主要内容,如果未能解决你的问题,请参考以下文章

部署数据源失败,因为 JBoss 认为它​​已经存在

如何使用 Java 代码使用 jboss-cli 命令将 EAR 文件部署到 wildfly-17.0.1 服务器

通过 JBoss CLI 在部署时更改 Activation-Config-Property

JBOSS 自定义登录模块

通过 jboss-cli 启用/禁用 Eclipselink 共享缓存

jboss_cli 活动会话详细信息 [关闭]