我正在关注以下教程:https://github.com/jbosstm/quickstart/tree/master/XTS/ssl
使用jboss-cli成功添加了安全领域:
/core-service=management/security-realm=SSLRealm:add()
/core-service=management/security-realm=SSLRealm/server-identity=ssl:add( \
keystore-path=./standalone/configuration/server.keystore, \
keystore-password=client, \
alias=client)
Run Code Online (Sandbox Code Playgroud)
当我尝试添加一个https-listener:
/subsystem=undertow/server=default-server/https-listener=https:add( \
socket-binding="https", security-realm="SSLRealm" \
)
Run Code Online (Sandbox Code Playgroud)
WildFly抛出一个异常:
{
"outcome" => "failed",
"failure-description" => "JBAS014750: Operation handler failed to complete",
"rolled-back" => true
}
Run Code Online (Sandbox Code Playgroud)
任何想法如何添加https-listener?
有没有人有使用CLI在Wildfly中设置消息传递子系统的示例脚本?
完美的示例是使服务器运行standalone.xml所需的CLI,并且在运行CLI脚本之后,它具有standalone-full.xml中定义的消息传递子系统.
到目前为止我发现的例子都是从消息子系统已经到位的假设开始的.
我们正在尝试使用该jboss-cli.bat命令读取JBoss状态.
jboss-cli.bat -c --command=":read-attribute(name=server-state)" > "$env:JBOSS_HOME\JbossServerStatus.txt"
Run Code Online (Sandbox Code Playgroud)
将状态存储在TXT文件中.由于" 按任意键继续 ",控制器不会返回.
是否有任何方法可以忽略按任意键继续而不编辑jboss-cli.bat?我们知道通过添加set NOPAUSE = true,将避免这个问题,但我们正在寻找解决方案而不编辑文件.
我正在使用Wildfly 10.起初我尝试通过CLI创建数据源.
命令deploy mysql-connector-java-6.0.4.jar执行得很好.
/subsystem=datasources:installed-drivers-list显示已安装驱动程序
{
"driver-name" => "mysql-connector-java-6.0.4.jar",
"deployment-name" => "mysql-connector-java-6.0.4.jar",
"driver-module-name" => undefined,
"module-slot" => undefined,
"driver-datasource-class-name" => undefined,
"driver-xa-datasource-class-name" => undefined,
"driver-class-name" => "com.mysql.cj.jdbc.Driver",
"driver-major-version" => 6,
"driver-minor-version" => 0,
"jdbc-compliant" => false
}
Run Code Online (Sandbox Code Playgroud)
但数据源不是使用命令创建的
data-source add --name=zktest-datasource
--jndi-name=java:/jdbc/zktest-database --driver-name=mysql-connector-java-6.0.4.jar --connection-url=jdbc:mysql://localhost:3306/zktest --user-name=root --password=111
Run Code Online (Sandbox Code Playgroud)
连接测试
/subsystem=datasources/data-source=zktest-datasource:test-connection-in-pool
was failed.
Run Code Online (Sandbox Code Playgroud)
现在我尝试使用创建数据源 standalone.xml
我的 modules.xml
<module xmlns="urn:jboss:module:1.1" name="com.mysql.jdbc">
<resources>
<resource-root path="mysql-connector-java-6.0.4.jar">
</resource-root>
</resources>
<dependencies>
<module name="javax.api"></module>
<module name="javax.transaction.api"></module>
</dependencies>
</module>
Run Code Online (Sandbox Code Playgroud)
modules.xml 放入 JBOSS_HOME/modules/system/layers/base/com/mysql/jdbc
"数据源"部分 JBOSS_HOME/standalone/configuration/standalone.xml
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" …Run Code Online (Sandbox Code Playgroud) 我有一个使用多个 JMS 队列的应用程序。该应用程序的问题在于它几乎不创建任何日志。我想避免停止应用程序,更新源并再次启动它(但是,如果没有其他方法可以做到这一点,我将被迫这样做)。应用程序在远程服务器上运行,因此远程调试只是由于消息量而造成的痛苦。
我在想,是否有办法在不中断应用程序流的情况下查看队列中消息的内容。到目前为止,我一直在尝试使用 jboss-cli 来做到这一点。首先,我用命令暂停了队列处理:
/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:pause
Run Code Online (Sandbox Code Playgroud)
之后,我获得了队列的内容:
/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:list-messages
Run Code Online (Sandbox Code Playgroud)
得到以下输出:
{
"outcome" => "success",
"result" => [{
"JMSPriority" => 3,
"JMSMessageID" => "ID:d50aef44-edcc-441c-818c-7d97200926cf",
"someOfMyKeys" => "someOfMyValues",
"JMSExpiration" => 1487255104511L,
"__AMQ_CID" => "ecdec0e2-b7c1-4d2e-b55b-317c38023b1b",
"JMSTimestamp" => 1487255094511L,
"JMSDeliveryMode" => "NON_PERSISTENT"
}]
Run Code Online (Sandbox Code Playgroud)
}
毕竟,我已经恢复了队列:
/subsystem=messaging-activemq/server=default/jms-queue=myQueues.input:resume
Run Code Online (Sandbox Code Playgroud)
然而,这并没有返回消息的实际内容。如果我能以字节格式(类似于 tcpdump 输出)获取内容就足够了。
有没有办法实现它,或者我必须使用我之前提到的方法(远程调试/应用程序源更改)?
有没有办法通过脚本将模块部署到 Wildfly (例如,无需手动修改 XML 文件)?我知道jboss-cli.sh命令 toadd module但有没有办法直接修改我的standalone.xml/domain.xml或做一些等效的事情来告诉 Wildfly 加载模块?
换种说法...
我发现了两种部署模块的方法:
1) 直接将jar复制到热部署中$KEYCLOAK_HOME/standalone/deployments
(根据该目录中的README,不建议将此方法用于生产部署,但之后无需任何手动工作即可工作。)
2)运行jboss-cli.sh --command="module add --name=com.example.MySpi"然后手动编辑standalone.xml(或domain.xml)以将您的模块放在“提供者”列表中,如下所示:
<subsystem xmlns="urn:jboss:domain:keycloak-server:1.1">
<web-context>auth</web-context>
<providers>
...
<provider>module:com.example.MySpi</provider>
</providers>
...
</subsystem>
Run Code Online (Sandbox Code Playgroud)
...最后重启服务器。
我想使用推荐的方式,但不手动编辑 XML 文件。有没有推荐的路径?
是否可以在 JBoss ClI 中回显系统变量?
jboss.server.config.dir
jboss.home.dir
Run Code Online (Sandbox Code Playgroud)
来自https://docs.jboss.org/author/display/WFLY8/Command+line+parameters标题“独立”下的表格。
我是 jboss-cli 的新手,正在研究“jboss-cli 食谱”。
问题
如何使用 jboss-cli读取一个特定属性?例如
语境
“CLI Recipes”文档有一个有用的示例来获取所有系统属性。然而它的“信息太多”。我想编写读取一个特定属性的脚本。
https://docs.jboss.org/author/display/WFLY10/CLI+Recipes#CLIRecipes-
JBoss AS7+ 中所有系统属性的概述,包括操作系统系统属性和使用 -D、-P 或 --properties 参数在命令行上指定的属性。
Standalone
[standalone@IP_ADDRESS:9999 /] /core-service=platform-mbean/type=runtime:read-attribute(name=system-properties)
Run Code Online (Sandbox Code Playgroud)
提前致谢
我正在将 MySQL 添加为 Wildfly 的数据源
我可以通过jboss-cli.sh将useSSL=false参数插入到 connection-url 标记中
这很完美,但是当我启动服务器时,它告诉我明确设置useSSL=false
/subsystem=datasources/data-source=KeycloakMysqlDS:add(
jndi-name=java:jboss/datasources/KeycloakMysqlDS,
driver-name=mysql,
connection-url=jdbc:mysql://localhost:3306/keycloak,
user-name=keycloak,
password=keycloak,
max-pool-size=15,
min-pool-size=5
)
Run Code Online (Sandbox Code Playgroud)
如果我将它与 jboss-cli.sh 一起使用
connection-url=jdbc:mysql://localhost:3306/keycloak?useSSL=false
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
{
"outcome" => "failed",
"failure-description" => "WFLYCTL0097: Wrong type for 'connection-url'. Expected [EXPRESSION, STRING] but was OBJECT",
"rolled-back" => true
}
Run Code Online (Sandbox Code Playgroud)
有没有办法通过 jboss-cli.sh 做到这一点?
jboss-cli ×9
wildfly ×8
jboss ×5
datasource ×2
keycloak ×2
mysql ×2
batch-file ×1
jakarta-ee ×1
java ×1
jms ×1