数据源中的 Wildfly 12 错误

Wildfly 12 error in datasource

我正在尝试在 Wildfly 12 中创建一个简单的数据源,以便将 mysql 数据库连接到 Java WEB 应用程序。

我尝试了 2 个选项:

  1. 修改standalone-full.xml添加数据源如下:

    <datasource jndi-name="java:jboss/datasources/MyDS" pool-name="MyDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql://localhost:3306/MyDatabaseName</connection-url>
                <driver>mysql</driver>
                <pool>
                    <min-pool-size>2</min-pool-size>
                    <max-pool-size>5</max-pool-size>
                </pool>
                <security>
                    <user-name>myuser</user-name>
                    <password>mypassword</password>
                </security>
            </datasource>
            <drivers>
                <driver name="mysql" module="com.mysql">
                    <driver-class>com.mysql.jdbc.Driver</driver-class>
                </driver>
            </drivers>
    
    1. 使用管理控制台添加数据源

我正在使用数据源创建一个没有问题的连接:

Context initCtx = new InitialContext(), envCtx = (Context) initCtx.lookup("java:comp/env");
        DataSource ds = (DataSource) envCtx.lookup("jdbc/MyDS");
        this.connection = ds.getConnection();

Java 连接没有错误,但是当我创建一个 servlet 来查询我的数据库时,我遇到了这样的异常:

"Table "未找到用户;SQL 语句:Select * 来自用户名 = 'myusername'"

我有 运行 一些测试,我注意到 Java 已连接到数据库但未连接到特定模式,我 运行 查询如 "SELECT DATABASE() FROM DUAL"结果是 "TEST"。所以我猜测 URL 连接中的数据库名称参数没有正常工作。

我该如何解决这个问题?我没有找到任何额外的参数来指定数据源中的数据库名称。

谢谢你的时间。

好吧,在尝试了一些修改之后,我意识到我必须将下一段代码放入 web.xml 文件中:

<resource-ref>
    <res-ref-name>jdbc/MyDS/<res-ref-name>
    <jndi-name>jdbc:mysql://localhost:3306/MyDatabaseName</jndi-name>
</resource-ref>

这解决了问题。