java - Wildfly 10 中 com.mysql.jdbc.Driver 的类未找到异常

标签 java mysql jdbc wildfly

我正在使用 Wildfly 10,我在 standalone.xml 中的数据源是:

        <datasources>
            <datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySQL_AAA" enabled="true" use-ccm="true">
                <connection-url>jdbc:mysql://localhost:3306/aaa</connection-url>
                <driver-class>com.mysql.jdbc.Driver</driver-class>
                <driver>mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1</driver>
                <security>
                    <user-name>root</user-name>
                    <password>root</password>
                </security>
                <validation>
                    <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                    <background-validation>true</background-validation>
                    <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                </validation>
            </datasource>

我在我的 Java bean 中运行这段代码:

 Class.forName("com.mysql.jdbc.Driver");

我收到此错误消息:

10:29:59,210 ERROR [stderr] (default task-15) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.AAA_5.war:main" from Service Module Loader]


10:29:59,210 ERROR [stderr] (default task-15) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)

我读到的文档说我需要在我的 lib 文件夹中安装驱动程序,但那没有用。我确定解决方案很简单,但我没有看到。有人能指出我正确的方向吗?一些我可以用作资源的文档会很棒。

最佳答案

将mysql驱动拖放到wildfly的deployments文件夹中,它会自动部署,然后就可以使用了。
编辑: 由于类加载器的行为,在部署时在 Wildfly 中安装 mysql JDBC 驱动程序不会让您访问 mysql 类,您只能通过 jndi 数据源访问数据库连接,并且您不需要使用 Class.forName().

InitialContext context=new InitialContext();
DataSource d=(DataSource)context.lookup(yourDataSourceName);

但是,如果您仍然需要在您的项目中使用 mysql 特定类,您必须将驱动程序放在您的 web-project/WEB-INF/lib 文件夹中。(但要小心这一点因为它不会与部署的驱动程序相关)

关于java - Wildfly 10 中 com.mysql.jdbc.Driver 的类未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37734889/

相关文章:

java - 在java中测试JDBC连接时如何检查有效的驱动程序名称

java - 为什么 Java API 中没有包含 CanvasPane 类?

java - 如何使用 websockets 从 mysql 获取实时通知更新?

php - 用数据库记录填充文本区域

mysql - 通过 MYSQL 在字符串中出现特殊事件时通过部分字符串更新字符串

java.lang.ClassnotfoundException com.mysql.jdbc.Driver

java - 可调用类给出错误 : doPing is not abstract and does not override abstract method call()?

java - 父子线程同步(子线程 "on monitor")

c# - Java 或 C# 中的 UPnP AV 远程控制

java - 错误: subquery Returns more than one row