wildfly上的Db2驱动程序/数据源设置:无法加载驱动程序模块[com.ibm]

时间:2014-06-03 02:57:08

标签: jdbc db2 wildfly

我想在我的wildfly服务器上配置db2的数据源(Wildfly.8.0.0-Final和8.1.0。)并且遇到了一些问题。

我的研究告诉我这是一个两步过程

  1. 将驱动程序作为模块安装在%JBOSS_HOME%/ modules / com / ibm / main目录中。
  2. 配置数据源子系统,使其在连接设置中包含此模块作为驱动程序。
  3. 到目前为止,我已使用以下module.xml在以下结构下安装了模块:

    modules/
    `-- com/
        `-- ibm/
            `-- main/
                |-- db2jcc4.jar
                |-- db2jcc_license_cu.jar
                |-- db2jcc_license_cisuz.jar
                `-- module.xml
    
    <?xml version="1.0" encoding="UTF-8"?>
    <module xmlns="urn:jboss:module:1.3" name="com.ibm">
        <resources>
            <resource-root path="db2jcc4.jar"/>
            <resource-root path="db2jcc_license_cu.jar"/>
            <resource-root path="db2jcc_license_cisuz.jar"/>
        </resources>
        <dependencies>
            <module name="javax.api"/>
            <module name="javax.transaction.api"/>
            <module name="sun.jdk"/>
        </dependencies>
    </module>
    

    xml文件中的<?...?>之前没有空格。模块名称是&#34; com.ibm&#34;数据源如下:

    <subsystem xmlns="urn:jboss:domain:datasources:2.0">
        <datasources>
            <datasource jndi-name="java:/jdbc/MyDS" pool-name="MyDS" enabled="true" use-java-context="true">
                <xa-datasource-property name="ServerName">myIP</xa-datasource-property>
                <xa-datasource-property name="PortNumber">1234</xa-datasource-property>
                <xa-datasource-property name="DatabaseName">MyDB</xa-datasource-property>
                <xa-datasource-property name="DriverType">4</xa-datasource-property>
                <driver>ibmdb2</driver>
                <pool>
                    <min-pool-size>0</min-pool-size>
                    <max-pool-size>50</max-pool-size>
                </pool>
                <security>
                    <user-name>bob</user-name>
                    <password>isyouruncle</password>
                </security>
                <validation>
                    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"/>
                    <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2StaleConnectionChecker"/>
                    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/>
                </validation>
            </datasource>
            <drivers>
                <driver name="ibmdb2" module="com.ibm">
                    <xa-datasource-class>com.ibm.db2.jcc.DB2XADatasource</xa-datasource-class>
                </driver>
            </drivers>
        </datasources>
    </subsystem>
    

    加载服务器会产生以下错误:

    12:49:01,228 ERROR [org.jboss.as.controller.management-operation] (ServerService Thread Pool -- 9) JBAS014613: Operation ("add") failed - address: ([
        ("subsystem" => "datasources"),
        ("jdbc-driver" => "ibmdb2")
    ]) - failure description: "JBAS010441: Failed to load module for driver [com.ibm]"
    

    这反过来导致我的数据源声明因缺少驱动程序而无法加载。

    我使用older documentation作为指南,因为目前似乎还没有任何野生动物可用。 this documentation显示了一些承诺,但似乎有些过时了。如果有人有任何经验设置,那么你的帮助将非常感激。

    我想连接到 DB2 9.7

    请,谢谢你。

5 个答案:

答案 0 :(得分:1)

尝试更换:

<resources-root path="db2jcc4.jar"/> <resources-root path="db2jcc_license_cu.jar"/> <resources-root path="db2jcc_license_cisuz.jar"/>

通过

<resource-root path="db2jcc4.jar"/> <resource-root path="db2jcc_license_cu.jar"/> <resource-root path="db2jcc_license_cisuz.jar"/>

从资源路线中删除s!

答案 1 :(得分:1)

您可以尝试启用jboss.jdbc.spy = TRACE并将spy="true"添加到数据源。

<datasource jndi-name="..." ... spy="true">

<logger category="jboss.jdbc.spy">
  <level name="TRACE"/>
</logger>

这通常用于调试JDBC,但也许它在加载驱动程序时也会显示更多内容。 你也绝对需要resource-root而不是s

答案 2 :(得分:1)

我有同样的问题。我通过从module.xml中删除这两行来解决它:

<resource-root path="db2jcc_license_cu.jar"/>
<resource-root path="db2jcc_license_cisuz.jar"/>

我没有具体解释为什么这有效。

答案 3 :(得分:1)

这不是您的问题的解决方案,但是对于(像我这样)通过搜索相同的错误消息来解决此问题的未来访问者的参考:

今天我遇到了同样的问题,对我来说这是module.xmlstandalone-full.xml中的错误。在这两种情况下,模块名称都是com.ibm.main,但它应该是com.ibm

简而言之:如果您遇到此消息并仔细检查配置文件无效,请重写它们。

答案 4 :(得分:0)

模块主文件夹中的jar文件应该作为

添加到module.xml中
<resources>
    <resource-root path="db2jcc4.jar"/>
    <resource-root path="db2jcc_license_cu.jar"/>
</resources>

如果你正在使用 db2jcc.jar 而不是 db2jcc4.jar ,并且正在定义一个标准(非XA)数据源,那么它可能对spedicfy有帮助司机班也是。

<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>