Sql Server JDBC 不适用于 Wildfly AS

Posted

技术标签:

【中文标题】Sql Server JDBC 不适用于 Wildfly AS【英文标题】:Sql Server JDBC not Working on wildfly AS 【发布时间】:2019-02-09 21:09:35 【问题描述】:

大家好,我正在尝试将 sqlserver jdbc 与 Wildfly AP 一起使用,但是当我尝试在数据源之后测试连接时,我总是收到此错误:

"WFLYCTL0062: Composite operation failed and was rolled back. Steps that failed:" => "Operation step-1" => 
      "WFLYCTL0412: Required services that are not installed:" => ["jboss.jdbc-driver.mssql"],
      "WFLYCTL0180: Services with missing/unavailable dependencies" => [
        "org.wildfly.data-source.Eventis is missing [jboss.jdbc-driver.mssql]",
        "jboss.driver-demander.java:/Eventis is missing [jboss.jdbc-driver.mssql]"
      ]

这里是配置文件的内容:

模块.xml:

<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver">
    <resources>
        <resource-root path="mssql-jdbc-6.4.0.jre8" />
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
    </dependencies>
</module>

独立的.xml:

<driver name="mssql" module="system.layers.base.com.microsoft.sqlserver">
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>

最后我的 jdbc jar 文件位于此路径下:

wildfly-14.0.0.Final\modules\system\layers\base\com\microsoft\sqlserver\main

【问题讨论】:

【参考方案1】:

您的模块名称不正确。应该是com.microsoft.sqlserverstandalone.xml sn-p 应该是这样的:

<driver name="mssql" module="com.microsoft.sqlserver">
    <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
</driver>

您可以在 CLI 中使用以下命令进行更改

/subsystem=datasources/jdbc-driver=mssql:remove
/subsystem=datasources/jdbc-driver=mssql:add(driver-name=mssql, driver-module-name="com.microsoft.sqlserver")

【讨论】:

以上是关于Sql Server JDBC 不适用于 Wildfly AS的主要内容,如果未能解决你的问题,请参考以下文章

JTDS 与 SQL Server 的连接问题 - 适用于 2000 但不适用于 2005

SQL 语句不适用于 Oracle JDBC

SQL Server 日期格式不适用于存储过程

SQL Server:表值函数不适用于子查询

Windows 身份验证不适用于 SQL Server

截断表不适用于 SQL Server sqlalchemy 引擎和 pandas