簡體   English   中英

Wildfly Server在非Windows環境中失敗,錯誤為WFLYCTL0017 && WFLYCTL0013

[英]Wildfly Server is failing in non windows environment and with error WFLYCTL0017 && WFLYCTL0013

我正在將ProcessBuilder(JAVA)的一些命令傳遞給standalone.sh。 當我在具有standalone.bat且具有相同參數的Windows環境中運行時,僅注意路徑,它可以在Windows中運行。

但是,當我在Mac或RedHat Linux上嘗試相同的代碼時,它會失敗。

而且我無法在日志文件中看到它,因為啟動服務器之前它會失敗。

我已經嘗試比較來自Windows的standalone.xml和MAC都是相同的。

對於失敗的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 -Diam.vault.enc.file.dir=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/vault/ -Diam.vault.keystore.alias=vault -Diam.vault.keystore.url=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/vault/vault.keystore -Diam.db.user=sa -Djboss.http.port=51112 -Djboss.https.port=51111 -Djboss.bind.address.management=0.0.0.0 -Djboss.bind.address=0.0.0.0 -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=iam-updater -Dkeycloak.migration.dir=../realms-to-import -Dkeycloak.migration.strategy=IGNORE_EXISTING -Diam.version=1.2.1-SNAPSHOT -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -agentlib:jdwp=transport=dt_socket,address=8787,server=y,suspend=n

我得到的錯誤是./standalone.sh:第311行:-Diam.keystore = / Applications / CA / 10.5SQLSERVER / IdentityAccessManager / certs / webreckeys.ks:沒有這樣的文件或目錄

即使是webreckeys.ks,此文件也已存在,並且所有權限都已存在。

=========================================================================

Usage: java [-options] class [args...]
           (to execute a class)
   or  java [-options] -jar jarfile [args...]
           (to execute a jar file)
where options include:
    -d32      use a 32-bit data model if available
    -d64      use a 64-bit data model if available
    -server   to select the "server" VM
                  The default VM is server,
                  because you are running on a server-class machine.


    -cp <class search path of directories and zip/jar files>
    -classpath <class search path of directories and zip/jar files>
                  A : separated list of directories, JAR archives,
                  and ZIP archives to search for class files.
    -D<name>=<value>
                  set a system property
    -verbose:[class|gc|jni]
                  enable verbose output
    -version      print product version and exit
    -version:<value>
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  require the specified version to run
    -showversion  print product version and continue
    -jre-restrict-search | -no-jre-restrict-search
                  Warning: this feature is deprecated and will be removed
                  in a future release.
                  include/exclude user private JREs in the version search
    -? -help      print this help message
    -X            print help on non-standard options
    -ea[:<packagename>...|:<classname>]
    -enableassertions[:<packagename>...|:<classname>]
                  enable assertions with specified granularity
    -da[:<packagename>...|:<classname>]
    -disableassertions[:<packagename>...|:<classname>]
                  disable assertions with specified granularity
    -esa | -enablesystemassertions
                  enable system assertions
    -dsa | -disablesystemassertions
                  disable system assertions
    -agentlib:<libname>[=<options>]
                  load native agent library <libname>, e.g. -agentlib:hprof
                  see also, -agentlib:jdwp=help and -agentlib:hprof=help
    -agentpath:<pathname>[=<options>]
                  load native agent library by full pathname
    -javaagent:<jarpath>[=<options>]
                  load Java programming language agent, see java.lang.instrument
    -splash:<imagepath>
                  show splash screen with specified image
See http://www.oracle.com/technetwork/java/javase/documentation/index.html for more details.
./standalone.sh: line 311: -Diam.keystore=/Applications/CA/10.5SQLSERVER/IdentityAccessManager/certs/webreckeys.ks: No such file or directory

對於Windows,它可以運行

 JBoss Bootstrap Environment

  JBOSS_HOME: "C:\PROGRA~1\CA\IAM_10_5\IDENTI~1"

  JAVA: "C:\Program Files\Java\jdk1.8.0_221\jre\bin\java"

  JAVA_OPTS: "-Dprogram.name=standalone.bat  -Diam.keystore.password=${VAULT::IAM::IAM_KEYSTORE_PASSWORD::1} -DIAM_HOME=C:\PROGRA~1\CA\IAM_10_5\IDENTI~1\ -Diam.db.password=${VAULT::IAM::IAM_DB_PASSWORD::1} -Diam.db.jdbc.driver.path=D:\setups\10.5\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=LocalWindowsIAM10_5 -Diam.keystore=C:\PROGRA~1\CA\IAM_10_5\IDENTI~1\certs/webreckeys.ks -Diam.vault.keystore.salt=6zqH6N6p -Diam.truststore=C:\PROGRA~1\CA\IAM_10_5\IDENTI~1\certs/iam-truststore.ks -Diam.vault.enc.file.dir=C:\PROGRA~1\CA\IAM_10_5\IDENTI~1\vault/ -Diam.vault.keystore.alias=vault -Diam.vault.keystore.url=C:\PROGRA~1\CA\IAM_10_5\IDENTI~1\vault/vault.keystore -Diam.db.user=sa -Djboss.http.port=51112 -Djboss.https.port=51111 -Djboss.bind.address.management=0.0.0.0 -Djboss.bind.address=0.0.0.0 -Dkeycloak.migration.action=import -Dkeycloak.migration.provider=iam-updater -Dkeycloak.migration.dir=../realms-to-import -Dkeycloak.migration.strategy=IGNORE_EXISTING -Diam.version=1.2.1-SNAPSHOT -Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true"

啟用日志記錄級別為DEBUG后

我看不到幾個錯誤

2019-09-23 12:18:55,175 DEBUG [org.jboss.as.controller.management-operation] (main) WFLYCTL0017: Operation ("read-resource") failed - address: ([
    ("subsystem" => "datasources"),
    ("jdbc-driver" => "mssql")
]) - failure description: "WFLYCTL0216: Management resource '[
    (\"subsystem\" => \"datasources\"),
    (\"jdbc-driver\" => \"mssql\")
]' not found"

還有一個是

2019-09-17 17:06:00,607 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("list-resource-loader-paths") failed - address: ([("core-service" => "module-loading")]) - failure description: "com.microsoft.sqlserver.jdbc"

這是standalone.xml中的subsytem標簽


<subsystem xmlns="urn:jboss:domain:datasources:5.0">
            <datasources>
                <datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true">
                    <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                    <driver>h2</driver>
                    <security>
                        <user-name>sa</user-name>
                        <password>sa</password>
                    </security>
                </datasource>
                <datasource jndi-name="java:jboss/datasources/KeycloakDS" pool-name="KeycloakDS" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>${iam.db.url}</connection-url>
                    <driver>mssql</driver>
                    <pool>
                        <flush-strategy>IdleConnections</flush-strategy>
                    </pool>
                    <security>
                        <user-name>${iam.db.user}</user-name>
                        <password>${iam.db.password}</password>
                    </security>
                    <validation>
                        <check-valid-connection-sql>SELECT 1</check-valid-connection-sql>
                        <background-validation>true</background-validation>
                        <background-validation-millis>60000</background-validation-millis>
                    </validation>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                    <driver name="mssql" module="com.microsoft.sqlserver.jdbc">
                        <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>

我找到了答案,為什么它失敗並因錯誤味精而引起誤導。

原因是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

然后在keystore命令之后

-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

對我來說,這是工作...感謝您付出的所有努力。

如何處理其他文件(如信任庫),如果選擇的話,那么密鑰庫文件位置必須有問題,或者可能是文件名。 為了進行驗證,您可以通過將密鑰庫文件放在jboss-home的位置來檢查它,並在JAVA_OPTS中提供該特定路徑,如果它可以正常工作則肯定是文件位置有問題或可能是文件路徑。 使用“ /”符號時也要小心。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM