Ошибка Wildfly 12 в источнике данных - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать простой источник данных в Wildfly 12 для подключения базы данных mysql к веб-приложению Java.

Я пробовал 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>
    
  2. Добавить источник данных с помощью консоли администратора

Я создаю Соединение с использованием источника данных без проблем:

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

Соединение Java работаетбез ошибок, но когда я создаю сервлет для запроса к моей базе данных, я получил следующее исключение:

"Таблица" user "not found; SQL оператор: Select * from user, где username = 'myusername'"

Я провел несколько тестов, и я мог заметить, что Java подключен к базе данных, но не к конкретной схеме, я запускаю запрос типа «SELECT DATABASE () FROM DUAL», и в результате получается «TEST».Поэтому я предполагаю, что параметр имени базы данных в соединении URL не работает должным образом.

Как я могу решить эту проблему?Я не нашел никаких дополнительных параметров для указания имени базы данных в источнике данных.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 25 мая 2018

Ну, после попытки некоторых модификаций, я понял, что мне нужно поместить следующий код в файл web.xml:

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

Это решило проблему.

...