野飞14微软SQL Server配置

3

我希望在Wildfly 14中使用MS SQL Server作为数据源,但是在控制台中始终会得到以下错误:

ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 41) WFLYCTL0013: Operation ("add") failed - address: ([("subsystem" => "datasources"),("jdbc-driver" => "sqlserver")]) - failure description: "WFLYJCA0115: Module for driver [com.microsoft.sqlserver.jdbc] or one of it dependencies is missing: [com.microsoft.sqlserver.jdbc]"

我的配置如下:

standalone.xml

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

我还在以下目录中配置了module.xml:wildfly-14.0.1.Final\modules\system\layers\base\com\microsoft\sqlserver\main。我也将sqljdbc42.jar放在其中。

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

在 Wildfly 13 及之前,我没有遇到任何问题。


我建议您将JDBC放在_<yourWildflyPath>\modules\com\microsoft\sqlserver\jdbc\main\sqljdbc42.jar_下(如果我没记错的话,这是一个更好的 - 如果不是正确的 - JDBC位置)。 - jhenrique
我已经将sqljdbc42.jar放置在建议的文件夹<yourWildflyPath>\modules\com\microsoft\sqlserver\jdbc\main\,就像module.xml一样。我需要从Microsoft下载其他文件并将其放入其中吗? - surfspider
我不这么认为。您需要 .jar 和 module.xml 文件。您能否告诉我们您是否在 <drivers> 标签中也有以下内容:<driver name="h2" module="com.h2database.h2"> <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class> </driver>? - jhenrique
我保留了h2驱动程序和“ExampleDS”数据源。这不可能是问题的原因。 - surfspider
日志里面有更多的信息吗?如果在WildFly 13中可以工作,那么在WildFly 14中也应该可以。 - James R. Perkins
显示剩余2条评论
2个回答

6
我认为您在 standalone.xml 中的 driver 配置仍然是错误的。
以下内容必须相同。
在 standalone.xml 中:
<driver name="sqlserver" module="com.microsoft.sqlserver.jdbc">

在module.xml文件中:

<module xmlns="urn:jboss:module:1.3" name="com.microsoft.sqlserver.jdbc">

sqljdbc42.jarmodule.xml的位置:

JBOSS_HOME\modules\com\microsoft\sqlserver\jdbc\main\

我认为您使用了错误的xa-datasource-class,应该改为:
com.microsoft.sqlserver.jdbc.SQLServerXADataSource

请参阅 EAP7文档,了解与wildfly相同的内容。此外,还有一个良好的CLI使用示例。


谢谢,现在它可以工作了。这是两个因素的结合,而Wildfly 13则不那么严格。在Wildfly 13中,在standalone.xml中声明驱动程序类是有效的,在wildfly 14中必须是数据源类。 - surfspider
我也遇到了同样的问题,我按照上面的步骤做了,但错误仍未解决,请问您是否将jar和模块xml文件都放在上面提到的同一文件夹中呢? - Nanda
你有按照eap7文档进行操作吗?你真的应该使用cli!是的,jdbc jar和module.xml在同一个文件夹中,就像答案中描述的那样。 - wirnse

1
将以下内容添加到<dependencies>标签内的module.xml文件中。
<module name="javax.xml.bind.api"/>

你能澄清一下吗?当你说“这个”时,你指的是什么? - Mathyn
我在创建mssql数据源时遇到了缺少依赖项的相同问题。查看日志后,似乎sql jar依赖于我上面提到的库。它适用于mssql14和wildfly17。希望这可以帮助! - Megamind

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接