【问题标题】:JTDS module under WildFly (JBoss)WildFly(JBoss)下的JTDS模块
【发布时间】:2013-11-25 11:10:10
【问题描述】:

我正忙于从 JBoss 7.1.1 升级到 Wildfly 8.0.0.Beta1。我在 JBoss 下使用 JTDS 数据库驱动程序没有问题,但它在 WildFly 下不起作用。

我在我的 WildFly 安装中创建了 modules 下的 /net/sourceforge/jtds/main/ 文件夹结构并添加了 module.xml 文件,但 Wildfly 似乎没有选择它。

我也试过/modules/system/layers/base/ 文件夹,因为这是WildFly 下的一个新文件夹,但这也不起作用,我也下载了最新的JTDS .JAR 文件。

我启动 Wildfly 时遇到的错误是:

ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "SCI_ODS_sql2")
]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [
    "jboss.data-source.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]",
    "jboss.driver-demander.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]"
]}
ERROR [org.jboss.as.controller.management-operation] (Controller Boot Thread) JBAS014613: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("data-source" => "SCI_ODS_sql2")
]) - failure description: {
    "JBAS014771: Services with missing/unavailable dependencies" => [
        "jboss.data-source.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]",
        "jboss.driver-demander.java:jboss/datasources/SCI_ODS is missing [jboss.jdbc-driver.JTDS]"
    ],
    "JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => [
            "jboss.data-source.reference-factory.SCI_ODS_sql2",
            "jboss.naming.context.java.jboss.datasources.SCI_ODS"
        ],
        "Services that may be the cause:" => ["jboss.jdbc-driver.JTDS"]
    }
}

如果我运行 /subsystem=datasources:installed-drivers-list uon jboss-cli.sh 它只显示默认安装的 h2 驱动程序而不是 JTDS 驱动程序。

【问题讨论】:

    标签: jboss jtds wildfly


    【解决方案1】:

    我没有正确设置standalone.xml 中的驱动程序。我说服自己我已经做到了。补充:

     <driver name="JTDS" module="net.sourceforge.jtds">
        <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
        <xa-datasource-class>net.sourceforge.jtds.jdbcx.JtdsDataSource</xa-datasource-class>
     </driver>
    

    【讨论】:

    • 好的,所以请将您的问题设置为“已回答”。提前致谢。
    【解决方案2】:

    首先,停止 WildFly 服务器。

    然后更新standalone.xml 文件以添加MS-SQL JTDS 驱动程序详细信息和Datasource 详细信息,如下所示:

    <subsystem xmlns="urn:jboss:domain:datasources:4.0">
                <datasources>
                    <datasource jta="true" jndi-name="java:/jdbc/speedtest-datasource" pool-name="MSSQLDSspeedTestDEV" enabled="true" use-ccm="true">
                        <connection-url>jdbc:jtds:sqlserver://serverName:1433;DatabaseName=dbName</connection-url>
                        <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
                        <driver>JTDS</driver>
                        <security>
                            <user-name>username</user-name>
                            <password>password</password>
                        </security>
                        <validation>
                            <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mssql.MSSQLValidConnectionChecker"/>
                            <background-validation>true</background-validation>
                        </validation>
                    </datasource>
                    <drivers>
    
                        <driver name="JTDS" module="net.sourceforge">
                            <driver-class>net.sourceforge.jtds.jdbc.Driver</driver-class>
                        </driver>
    
                    </drivers>
                </datasources>
            </subsystem>
    

    Module.xml for MS SQL JTDS: path : E:\Softwares\wildfly-10.1.0.Final\wildfly-10.1.0.Final\modules\system\layers\base\net\sourceforge\main (需要创建突出显示的目录结构并添加 module.xml 和 jtds-1.3.0.jar 文件)。

    (请注意,在此示例中,我使用模块名称作为“net.sourceforge”并将文件夹结构路径创建为“net\sourceforge\main”)。请注意,这对匹配module、xml文件中的目录路径和模块名称更为重要。

    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.0" name="net.sourceforge">
    <resources>
    <resource-root path="jtds-1.3.0.jar"/>
    </resources>
    <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    </dependencies>
    </module>
    

    注意:请注意上面2处绿色高亮的路径要匹配(即module.xml中的目录结构和模块名),

    例如。如果您已将目录结构创建为 E:\Softwares\wildfly-10.1.0.Final\wildfly-10.1.0.Final\modules\system\layers\base\net\sourceforge\jtds\main 那么 module.xml 中的模块名称文件应为“net.sourceforge.jtds”,如下所示的 module.xml 文件

    Module.xml:
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.0" name="net.sourceforge.jtds">
    <resources>
    <resource-root path="jtds-1.3.0.jar"/>
    </resources>
    <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    </dependencies>
    </module>
    

    现在保存这两个文件并重启wildFLY服务器。

    【讨论】:

      猜你喜欢
      • 2014-04-13
      • 2015-10-06
      • 2013-12-01
      • 1970-01-01
      • 2019-04-03
      • 2014-09-09
      • 2014-10-04
      • 2014-07-29
      • 1970-01-01
      相关资源
      最近更新 更多