簡體   English   中英

數據源中的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 Connection可以正常工作,但是當我創建一個servlet查詢數據庫時,出現了如下異常:

“未找到表“用戶”; SQL語句:從用戶名*'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>

這樣就解決了問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM