如何通过JBoss CLI部署WAR包并传递指定JVM启动参数?
在JBoss CLI部署WAR时传递JVM参数的解决方案
嘿,针对你的需求,这里有两种实用的实现方式,你可以根据参数的作用范围来选择:
方式一:给整个服务器组全局配置JVM参数(所有应用共享)
如果这个-Dspring.profiles.active=enableScheduler需要让server-group1下的所有应用都用上,那可以直接修改服务器组的JVM配置,步骤如下:
- 先连接到JBoss CLI:
jboss-cli.sh --connect - 执行命令添加JVM选项到服务器组:
/server-group=server-group1/jvm=default/jvm-option=Dspring.profiles.active=enableScheduler:add(value="-Dspring.profiles.active=enableScheduler") - 重新加载服务器组的配置(或者重启组内的实例),让参数生效:
reload --server-groups=server-group1 - 最后执行你原来的部署命令就行:
deploy --name=xxx-api.war --server-groups=server-group1 /war/locn/xxx-api-$rel_name.war
方式二:只为当前部署的WAR应用单独设置参数
要是你只想让这个参数作用于xxx-api.war,不想影响其他应用,那可以在部署时直接通过CLI指定属性,操作更灵活:
连接到JBoss CLI后,直接用带--properties参数的部署命令:
deploy --name=xxx-api.war --server-groups=server-group1 /war/locn/xxx-api-$rel_name.war --properties=spring.profiles.active=enableScheduler
这种方式会把这个属性设为该应用专属的系统属性,效果和JVM参数-Dspring.profiles.active=enableScheduler完全一致。
另外,你也可以修改WAR包内的WEB-INF/jboss-web.xml来添加上下文参数,但这种方式需要改动WAR包,不如CLI直接操作方便:
在
jboss-web.xml里加这段配置:<context-param> <param-name>spring.profiles.active</param-name> <param-value>enableScheduler</param-value> </context-param>
验证参数是否生效
部署完之后,你可以用CLI命令来确认参数已经生效:
- 查看应用的系统属性(方式二的情况):
/deployment=xxx-api.war:read-attribute(name=system-properties) - 查看服务器组的JVM选项(方式一的情况):
/server-group=server-group1/jvm=default:read-attribute(name=jvm-options)
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

