gpt4 book ai didi

java - 数据源中的 Wildfly 12 错误

转载 作者:行者123 更新时间:2023-11-29 17:33:58 26 4
gpt4 key购买 nike

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

我尝试了两种选择:

  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>
  2. 使用管理控制台添加数据源

我正在使用数据源创建连接,没有出现问题:

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 连接中的数据库名称参数无法正常工作。

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

感谢您的宝贵时间。

最佳答案

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

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

这解决了问题。

关于java - 数据源中的 Wildfly 12 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50440287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com