【问题标题】:Wildfly 12 error in datasource数据源中的 Wildfly 12 错误
【发布时间】:2018-10-30 14:31:12
【问题描述】:

我正在尝试在 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 来查询我的数据库时,我遇到了这样的异常:

“未找到表“用户”;SQL 语句:Select * from user where username = 'myusername'”

我已经运行了一些测试,我注意到 Java 连接到数据库但没有连接到特定架构,我运行类似“SELECT DATABASE() FROM DUAL”的查询,结果是“TEST”。所以我猜是URL连接中的数据库名称参数不能正常工作。

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

感谢您的宝贵时间。

【问题讨论】:

    标签: java mysql wildfly datasource


    【解决方案1】:

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

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

    这解决了问题。

    【讨论】:

      猜你喜欢
      • 2018-11-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 2016-03-15
      • 2014-10-11
      • 1970-01-01
      • 2015-03-21
      • 1970-01-01
      相关资源
      最近更新 更多