【问题标题】:ClassNotFoundException org.h2.Driver in WildflyWildfly 中的 ClassNotFoundException org.h2.Driver
【发布时间】:2014-04-21 06:53:02
【问题描述】:

我正在尝试在 Wildfly 中部署和运行我的 ear 文件。当我尝试访问以下代码时,它会为 org.h2.Driver 提供 ClassNotFoundException。

String jdbcURL = "jdbc:h2:file;MODE=Derby;auto_server=true";            Class.forName("org.h2.Driver");
Connection = DriverManager.getConnection(jdbcURL, username", "password");

我的模块.xml

<module xmlns="urn:jboss:module:1.1" name="com.h2database.h2">

    <resources>
        <resource-root path="h2.jar"/>

    </resources>
    <dependencies>

        <module name="javax.api"/>
        <module name="javax.transaction.api"/>
        <module name="javax.servlet.api" optional="true"/>
    </dependencies>
</module>

我有什么需要改变的吗?

【问题讨论】:

    标签: java jboss wildfly


    【解决方案1】:

    WildFly 已经附带了一个名为 com.h2database.h2 的模块。我认为您不需要添加自己的。

    至于ClassNotFoundException,请确保您的部署依赖于模块com.h2database.h2。有几种方法可以将依赖项添加到您的部署中,最简单的可能是将Dependencies: com.h2database.h2 添加到您的MANIFEST.MF。其他方式见class loading documentation

    【讨论】:

    • 是的。你说的对。 Wildfly 默认加载 H2 驱动程序。但只有一个 Class.forName 的情况我得到了这个例外
    • 您是否将模块的依赖项添加到您的部署中?
    • 我尝试使用 jboss-deployment-structure.xml 添加 H2 模块,但没有成功。
    • 如果依赖项在正确的位置,它肯定可以工作。如果它是一个 EAR 并且您的 jboss-deployment-structure.xml 在您的 EAR/META-INF 中,那么请确保使用它的子部署也依赖它。
    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多