"无法加载模块" WildFly 8.1.0.Final上Firebird数据源的错误

时间:2014-08-18 14:17:22

标签: java jdbc firebird wildfly jaybird

服务器启动错误消息为:

16:08:37,829 ERROR [org.jboss.as.controller.management-operation] (ServerService
 Thread Pool -- 27) JBAS014613: Operation ("add") failed - address: ([
    ("subsystem" => "datasources"),
    ("jdbc-driver" => "firebird")
]) - failure description: "JBAS010441: Failed to load module for driver [org.fir
ebirdsql]"

module.xml 的内容

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.firebirdsql">
  <resources>
    <resource-root path="jaybird-2.2.5.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.resource"/>
    <module name="javax.transaction.api"/>
  </dependencies>
</module>

standalone.xml 中的驱动程序定义:

<driver name="firebird" module="org.firebirdsql">
  <driver-class>org.firebirdsql.jdbc.FBDriver</driver-class>
</driver>

(基于http://masterjboss.blogspot.de/2014/03/how-to-configure-mysql-jdbc-driver-in.html

类似问题(未接受回答):Db2 Driver/Datasource setup on wildfly: Failed to load module for driver [com.ibm]

2 个答案:

答案 0 :(得分:4)

<module name="javax.resource"/>替换为依赖项部分中的<module name="javax.resource.api"/>

答案 1 :(得分:1)

我已安装WildFly 8.1并在以下位置添加了模块:

<wildfly-root>\modules\org\firebirdsql\main\
                                            module.xml
                                            jaybird-2.2.5.jar

请注意,这与您链接到的教程中使用的位置不匹配。教程 - 错误地 - 将用户模块设置在modules\system\layers\base而不是modules\中,但是当我将模块放在那里时它也能正常工作。

我的module.xml定义包含以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="org.firebirdsql">
  <resources>
    <resource-root path="jaybird-2.2.5.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
    <module name="javax.transaction.api"/>
    <module name="javax.resource.api"/>
  </dependencies>
</module>

我将驱动程序条目添加到standalone.xml,与您发布的完全相同。然后在管理控制台中添加了一个数据源,并测试了连接。

这很有效。我在评论中的早期理论认为,由于Web Profile不包括资源连接器,它不适合您,这似乎是错误的。当WildFly在Java 7上运行时,我也使用Java 8版本的Jaybird进行了测试,但是这得到了UnsupportedClassVersionError的预期。

我能够在你的问题中得到错误的唯一方法是故意错放模块(例如,完全删除它,在文件夹名称中出现拼写错误,或将其放在错误的位置)。我建议您仔细检查您的模块位置(见上文)。


有关特定问题的解决方案,请参阅the answer by asohun。我将保留这个答案,因为它包含正确的配置和产生相同错误的替代故障模式。