为了账号安全,请及时绑定邮箱和手机立即绑定

Wildfly 服务器在非 Windows 环境中失败并出现错误 WFLYCTL0017 &&

Wildfly 服务器在非 Windows 环境中失败并出现错误 WFLYCTL0017 &&

江户川乱折腾 2023-08-04 16:35:06
我使用 ProcessBuilder(JAVA) 将一些命令传递给standalone.sh。当我使用带有相同参数的standalone.bat 在Windows 环境中运行时,只需注意路径即可在Windows 中运行。但是当我在 mac 或 RedHat Linux 上尝试相同的代码时,它失败了。而且我无法在日志文件中看到它,因为它在启动服务器之前失败了。我尝试比较 Windows 和 MAC 中的standalone.xml,两者都是相同的。对于Mac,它失败了  JBOSS_HOME: /Applications/CA/10.5SQLSERVER/IdentityAccessManager  JAVA: /Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home/jre/bin/java  JAVA_OPTS:  -server -Diam.keystore.password=\${VAULT::IAM::IAM_KEYSTORE_PASSWORD::1} -DIAM_HOME=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/ -Diam.db.password=\${VAULT::IAM::IAM_DB_PASSWORD::1} -Diam.db.jdbc.driver.path=/Users/ajay/driveD/software/jars/sqljdbc4-4.0.jar -Diam.vault.enc.iteration.count=120 -Diam.db.vendor=mssql -Diam.vault.keystore.password.masked=MASK-7DscHYCAzRJgjgpBba72IwRGfBaq4CFF70uETVutVDX -Diam.truststore.password=\${VAULT::IAM::IAM_TRUSTSTORE_PASSWORD::1} -Diam.db.url=jdbc:sqlserver://ibndev000608.bpc.broadcom.net:1433;databaseName=IAM105_VAULT -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks -Diam.vault.keystore.salt=6zqH6N6p -Diam.truststore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/iam-truststore.ks -我收到的错误是 ./standalone.sh: line 311: -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks: 没有这样的文件或目录甚至 webreckeys.ks 这个文件也已就位并且所有权限都在那里。
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

我找到了答案,为什么它失败并被错误消息误导。

原因是—— Diam.db.url=jdbc:sqlserver://ibndev000608.bpc.broadcom.net:1433;databaseName=IAM105_VAULT

-Diam.db.url 的值中有一个分号jdbc:sqlserver://ibndev000608.bpc.broadcom.net:1433;databaseName=IAM105_VAULT

和分号之后databaseName=IAM105_VAULT

接下来是密钥库命令之后

-databaseName=IAM105_VAULT -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks

所以它变成了

databaseName=IAM105_VAULT -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks

在Linux和Mac环境中,分号表示两个命令之间的分隔符。

我是如何解决问题的

我打开standalone.sh 并将其放在第一行, set -x这意味着跟踪shell 脚本。

它显示了两个命令,因此我标识了 JDBC URL 并将其括在双引号 (" ") 中

-Diam.db.url="jdbc:sqlserver://ibndev000608.bpc.broadcom.net:1433;databaseName=IAM105_VAULT" -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks

这对我来说很有用...感谢你们所有的努力。


查看完整回答
反对 回复 2023-08-04
?
米脂

TA贡献1836条经验 获得超3个赞

其他文件(例如信任库)怎么样,如果选择的话,那么密钥库文件位置一定有问题,或者可能是它的名称。为了进行验证,您可以通过将密钥库文件放置在 jboss-home 的位置来检查您的密钥库文件,并在 JAVA_OPTS 中给出该特定路径,如果它有效,那么肯定是文件位置有问题或可能是文件路径。使用“/”符号时也要小心。



查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 83 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信