Wildfly 10无法连接数据源:无效连接

时间:2016-11-10 22:45:48

标签: java java-ee jdbc datasource wildfly

问题

我正在尝试测试我的连接并且它一直给我同样的错误,而乍看之下我无法看到我做错了什么。也许我忽视了一些事情......

错误

    nexpected HTTP response: 500

    Request
    {
       "address" => [
            ("subsystem" => "datasources"),
            ("data-source" => "ProjectenDS")
        ],
        "operation" => "test-connection-in-pool"
    }

    Response

    Internal Server Error
    {
        "outcome" => "failed",
        "failure-description" => "WFLYJCA0040: failed to invoke operation: WFLYJCA0047: Connection is not valid",
        "rolled-back" => true
    }


独立-full.xml

    <subsystem xmlns="urn:jboss:domain:datasources:4.0">
                <datasources>
                    <datasource jta="true" jndi-name="java:/ProjectenDS" pool-name="ProjectenDS" enabled="true" use-ccm="true">
                        <connection-url>jdbc:mysql://localhost:3306/projecten3db</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql-connector-java-5.1.40-bin.jar_com.mysql.jdbc.Driver_5_1</driver>
                <pool>
                    <min-pool-size>10</min-pool-size>
                    <initial-pool-size>11</initial-pool-size>
                    <max-pool-size>100</max-pool-size>
                </pool>
                <security>
                    <user-name>projecten</user-name>
                    <password>projecten</password>
                </security>
                <validation>
                    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                    <background-validation>true</background-validation>
                    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                </validation>
            </datasource>
        </datasources>
    </subsystem>

5 个答案:

答案 0 :(得分:4)

您拥有的例外是通用的。

检查{WILDFLY_HOME}/standalone/log/server.log

您可以在Web控制台上进行测试时使用tail -f server.log

这将为您提供正确的错误。

答案 1 :(得分:1)

我通过减少池大小并在数据源设置上将prefill属性设置为false来解决此错误。

<pool>
   <min-pool-size>5</min-pool-size>
   <max-pool-size>10</max-pool-size>
   <prefill>false</prefill>
   <use-strict-min>false</use-strict-min>
   <flush-strategy>IdleConnections</flush-strategy>
</pool>

答案 2 :(得分:0)

当我们的用户未映射到请求的数据库时,在MS SQL上出现了此类错误

答案 3 :(得分:0)

如果您的数据源不是XA,请打开standalone.xml并从数据源定义中删除datasource-class属性。即使您在创建数据源时未指定它,Wildfly也会添加它。

您可能必须重新启动服务器才能看到它的正常运行。

答案 4 :(得分:0)

尝试检查是否有任何错误,例如“不建议在没有服务器身份验证的情况下建立 SSL 连接。 根据 MySQL 5.5.45+、5.6.26+ 和 5.7.6+ 要求,如果未设置显式选项,则必须默认建立 SSL 连接。 为了符合不使用 SSL 的现有应用程序,verifyServerCertificate 属性设置为“false”。 您需要通过设置 useSSL=false 来显式禁用 SSL,"

错误:jdbc:mysql://localhost:3306/demodb 对 :jdbc:mysql://localhost:3306/demodb?useSSL=false

...这对我有用!

还要确保!

1.mysql 连接器添加 2.关闭“windows防火墙”加上任何“防病毒”防火墙 3.驱动程序类、池大小、带端口号的连接url

参考: https://mkyong.com/mysql/mysql-establishing-ssl-connection-without-servers-identity-verification-is-not-recommended/