【问题标题】:ClassNotFoundException for MySQL driver JBoss AS 7MySQL 驱动程序 JBoss AS 7 的 ClassNotFoundException
【发布时间】:2015-04-13 18:02:54
【问题描述】:

几天来,我一直在努力让 MySQL 连接在我的应用程序中正常工作。我在 com.mysql.jdbc.Driver 上不断收到 ClassNotFoundException。这方面有很多线程,但没有解决我的问题,我现在有点迷茫。

几天前一切正常,但后来我将代码重组为几个模块并将它们部署在一个 ear 文件中。从那以后,我根本无法访问数据库。

我在 JBoss 中设置了一个 MySQL 驱动程序和数据源,经过一番折腾之后,它似乎终于可以工作了。我可以在管理控制台中检查并测试连接,一切似乎都很好。

但我仍然在运行时收到 ClassNotFoundException...

20:09:25,854 ERROR [stderr] (http-localhost-127.0.0.1-8080-5) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.traintrack-ear-0.0.1-SNAPSHOT.ear:main" from Service Module Loader]

20:09:25,858 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

20:09:25,858 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

20:09:25,862 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

20:09:25,866 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

20:09:25,866 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

20:09:25,870 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at java.lang.Class.forName0(Native Method)

20:09:25,870 ERROR [stderr] (http-localhost-127.0.0.1-8080-5)   at java.lang.Class.forName(Class.java:191)

这是我的standalone.xml 的相关部分:

<datasource jta="false" jndi-name="java:jboss/MySqlDSJNDI" pool-name="MySqlDS" enabled="true" use-ccm="false">
                    <connection-url>jdbc:mysql://localhost:3306/trainingTracker</connection-url>
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                    <driver>mysql-connector-java-5.1.35-bin.jarcom.mysql.jdbc.Driver_5_1</driver>
                    <security>
                        <user-name>root</user-name>
                        <password>root</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                    </validation>
                    <statement>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </datasource>

驱动程序作为模块部署在 $JBOSS_HOME\modules\com\mysql\main 中。这是module.xml:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.mysql">  
   <resources>  
     <resource-root path="mysql-connector-java-5.1.35-bin.jar"/>  

   </resources>   

   <dependencies>  
      <module name="javax.api"/>  
    </dependencies>  
</module>  

这似乎没问题,因为它已在管理面板中注册并且连接测试成功,但也许更敏锐的眼睛可以发现问题。

我正在使用 Maven 构建它,并且依赖项在我的 pom.xml 中作为提供的范围。

对此的任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 很想帮助你,但没有咨询一些茶叶,我认为这不是我们可以远程诊断和解决的问题
  • 缺少什么类?
  • 当然,但我不是在寻求解决方案,只是一些让我开始的指示。我的想法已经用完了
  • 对不起,是com.mysql.jdbc.Driver。问题已更新
  • 好吧,考虑使用 JBoss 上 mysql 驱动程序的模块、错误的堆栈跟踪和数据源配置来更新您的问题。也许我们可以帮助你。

标签: java mysql maven jboss


【解决方案1】:

问题解决了!我不得不在我的耳朵清单中添加对 SQL 驱动程序的依赖。感谢您的帮助

【讨论】:

    猜你喜欢
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 2014-07-16
    • 2013-02-05
    相关资源
    最近更新 更多