如何在 WildFly 中离线更新 standalone.xml
How to update standalone.xml offline in WildFly
作为我项目的一部分,我需要支持遗留 JAAS 安全域来保护我的 EJB。我正在关注快速入门 (https://github.com/wildfly/quickstart/tree/master/ejb-security-jaas) and updating the configuration using jboss-cli (https://github.com/wildfly/quickstart/blob/master/ejb-security-jaas/configure-elytron-jaas.cli)。我的 POC 一切正常。
但是,当我尝试在生产代码中应用这个概念时,我遇到了一个问题。我们将我们的生产代码与 WildFly 一起打包,并要求客户启动我们的产品(在内部启动 WildFly)。根据我的理解,jboss-cli 需要 WildFly 运行- 所以,我正在尝试以下两种方法
方法一
- 启动 WildFly
- 运行 jboss-cli 并进行与支持遗留 JAAS 安全域相关的所有配置
- 重启 WildFly
这有很多挑战,包括需要重新启动
方法二
- 更新 standalone.xml(在我的产品构建期间使用 ant 脚本)
- 将我的生产代码与更新的 standalone.xml 和 WildFly
一起打包
目前,我正在遵循方法 2,但在我看来,使用 ant 脚本更新 standalone.xml 效率不高。有没有更好的方法?欢迎专家提出任何建议。
您可以使用 embed-server
做您想做的事。下面是我使用 jboss-cli 添加数据源的脚本。其中的关键部分是 embed-server
和 batch
部分:
embed-server --server-config=standalone.xml --std-out=echo
batch
module add --name=org.postgres --resources=${user.home}/Downloads/postgresql-42.2.12.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
/subsystem=datasources/data-source=blah/:add(connection-url=jdbc:postgresql://localhost:5432/blah,driver-name=postgres,jndi-name=java:/jdbc/blah,initial-pool-size=4,max-pool-size=64,min-pool-size=4,password=blah,user-name=blah)
run-batch
您可以看到这是在更新standalone.xml
。显然,如果你使用不同的配置文件,你可以在这里使用它。
其中一个重要的部分是 Wildfly 应该而不是 运行。
作为我项目的一部分,我需要支持遗留 JAAS 安全域来保护我的 EJB。我正在关注快速入门 (https://github.com/wildfly/quickstart/tree/master/ejb-security-jaas) and updating the configuration using jboss-cli (https://github.com/wildfly/quickstart/blob/master/ejb-security-jaas/configure-elytron-jaas.cli)。我的 POC 一切正常。
但是,当我尝试在生产代码中应用这个概念时,我遇到了一个问题。我们将我们的生产代码与 WildFly 一起打包,并要求客户启动我们的产品(在内部启动 WildFly)。根据我的理解,jboss-cli 需要 WildFly 运行- 所以,我正在尝试以下两种方法
方法一
- 启动 WildFly
- 运行 jboss-cli 并进行与支持遗留 JAAS 安全域相关的所有配置
- 重启 WildFly
这有很多挑战,包括需要重新启动
方法二
- 更新 standalone.xml(在我的产品构建期间使用 ant 脚本)
- 将我的生产代码与更新的 standalone.xml 和 WildFly 一起打包
目前,我正在遵循方法 2,但在我看来,使用 ant 脚本更新 standalone.xml 效率不高。有没有更好的方法?欢迎专家提出任何建议。
您可以使用 embed-server
做您想做的事。下面是我使用 jboss-cli 添加数据源的脚本。其中的关键部分是 embed-server
和 batch
部分:
embed-server --server-config=standalone.xml --std-out=echo
batch
module add --name=org.postgres --resources=${user.home}/Downloads/postgresql-42.2.12.jar --dependencies=javax.api,javax.transaction.api
/subsystem=datasources/jdbc-driver=postgres:add(driver-name="postgres",driver-module-name="org.postgres",driver-class-name=org.postgresql.Driver)
/subsystem=datasources/data-source=blah/:add(connection-url=jdbc:postgresql://localhost:5432/blah,driver-name=postgres,jndi-name=java:/jdbc/blah,initial-pool-size=4,max-pool-size=64,min-pool-size=4,password=blah,user-name=blah)
run-batch
您可以看到这是在更新standalone.xml
。显然,如果你使用不同的配置文件,你可以在这里使用它。
其中一个重要的部分是 Wildfly 应该而不是 运行。