java - JBoss EAP 7 java.lang.IllegalArgumentException 通过 Gradle 脚本配置 JBoss EAP 7 数据源的问题

标签 java gradle jboss jboss-eap-7

在 Ansible 提供 JBoss EAP 之后,我在配置 JBoss EAP 时遇到了麻烦。

添加数据源 gradle 任务因 java.lang.IllegalArgumentException 而失败。该脚本适用于其他环境,但我无法弄清楚我们出了什么问题,现在已经使用了几天。

下面是gradle任务如下:

    // Adds data source config to JBoss EAP 7

    def addDatasourcesSingleStack(def config, def hostName, def serverName, def mySQLURL) {
        def username = getMysqlDatasourceUsername();
        def password = getMysqlDatasourcePassword();

//This is the command failing
executeCliCommandHostSingleStack("""/profile=${config.server_profile_single_stack_name}/subsystem=datasources/data-source=MySqlDS:add(
            jndi-name=${config.mysql_jndi_name},
            connection-url=\"${mySQLURL}\",
            driver-name=com.mysql,
            user-name=${username},
            password=${password},
            transaction-isolation=TRANSACTION_READ_COMMITTED,
            min-pool-size=10,
            max-pool-size=${config.mysql_max_connections},
            pool-prefill=true,
            prepared-statements-cache-size=32,
            share-prepared-statements=true,
            valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker,
            validate-on-match=true,
            background-validation=false,
            exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter,
            statistics-enabled=true)""".stripIndent());
        executeCliCommandHostSingleStack("/profile=${config.server_profile_single_stack_name}/subsystem=datasources/data-source=MySqlDS:enable");   
    }

执行上述操作时产生的错误消息如下:
Caused by: java.lang.RuntimeException: Error Occurred Creating Server Group in 1-1. Run 'remove-server-group' command to remove incomplete group, and then r
un 'create-server-group' again
        at build_aant4k1fpdt1r8vajv7zpx6zd$_run_closure11.doCall(C:\Users\IN_XXXX\releases\release-1.0\build.gradle:3111)
        at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:558)
        at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:539)
        at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:77)
        at org.gradle.api.internal.tasks.TaskMutator$1.execute(TaskMutator.java:73)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 46 more
Caused by: java.lang.IllegalArgumentException: Command '/profile=dms-server-profile-single-stack/subsystem=datasources/data-source=MySqlDS:add(
                jndi-name=java:/jdbc/dms,
                connection-url="jdbc:mysql://host1:3306/dms_db?socketTimeout=60000",
                driver-name=com.mysql,
                user-name=dms_app,
                password=xxxxxxxxx,
                transaction-isolation=TRANSACTION_READ_COMMITTED,
                min-pool-size=10,
                max-pool-size=200,
                pool-prefill=true,
                prepared-statements-cache-size=32,
                share-prepared-statements=true,
                valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker,
                validate-on-match=true,
                background-validation=false,
                exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter,
                statistics-enabled=true)' is invalid. {
    "outcome" => "failed",
    "result" => undefined,
    "failure-description" => {"WFLYDC0074: Operation failed or was rolled back on all servers. Server failures:" => {"server-group" => {"dms-server-group-single
-stack" => {"host" => {"host1" => {"dms-server-instance-single-stack" => {"WFLYCTL0288: One or more services were unable to start due t
o one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => ["org.wildfly.data-source.MySqlDS"],
        "Services that may be the cause:" => ["org.wildfly.network.interface.public"]
    }}}}}}}},
    "rolled-back" => true,
    "server-groups" => {"ams-server-group-single-stack" => {"host" => {"host1" => {"dms-server-instance-single-stack" => {"response" =>
 {
        "outcome" => "failed",
        "failure-description" => {"WFLYCTL0288: One or more services were unable to start due to one or more indirect dependencies not being available." => {
            "Services that were unable to start:" => ["org.wildfly.data-source.MySqlDS"],
            "Services that may be the cause:" => ["org.wildfly.network.interface.public"]
        }},
        "rolled-back" => true,
        "response-headers" => {"process-state" => "reload-required"}
    }}}}}}
}

当我尝试通过 JBoss 管理控制台手动添加数据源时,出现以下错误:

无法创建 JDBC 连接。
发生了内部错误。
细节

意外的 HTTP 响应:500
Request
{
    "address" => [],
    "operation" => "composite",
    "steps" => [{
        "operation" => "test-connection-in-pool",
        "address" => [
            ("host" => "host1"),
            ("server" => "dms-server-instance-single-stack"),
            ("subsystem" => "datasources"),
            ("data-source" => "MySqlDS")
        ]
    }]
}

Response

Internal Server Error
{
    "outcome" => "failed",
    "result" => {"step-1" => {
        "outcome" => "failed",
        "result" => undefined,
        "failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0042: failed to match pool. Check JndiName: java:/jdbc/dms",
        "response-headers" => {"process-state" => "reload-required"},
        "rolled-back" => true
    }},
    "failure-description" => {"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-1" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0042: failed to match pool. Check JndiName: java:/jdbc/dms"}},
    "rolled-back" => true
} 

任何帮助、评论和引用将不胜感激。

谢谢。

最佳答案

您可以检查两件事:

  • 检查数据源是否启用。
  • 检查在主机配置中配置了公共(public)和不安全接口(interface)。
  • 关于java - JBoss EAP 7 java.lang.IllegalArgumentException 通过 Gradle 脚本配置 JBoss EAP 7 数据源的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53873062/

    相关文章:

    JavaEE 解决方案配置最佳实践

    java - 使用 JBoss 部署 REST 服务时出现的问题

    java - 从静态 block 调用静态方法

    java - Gradle:maven 仓库上的条件库发布包

    exception - antlr4 在 .g4 语法文件上工作正常,但 gradle generateGrammarSources 在同一个文件上失败,TokenStreamException : unexpected char: '-'/"

    gradle - 如何简化Gradle命令行?

    java - 使用 ANT 创建带有版本的 WAR 文件

    java - 如何在单个 Activity 中显示多个标题和点

    java - 打包包含 JSP 和静态资源的 spring boot 应用程序

    java - 如何将树路径上的一个节点插入到另一个节点中?