Пул соединений Jboss не соединяется с базой данных

0

Я использую JBoss 7.1, и я пытаюсь создать пул подключений к базе данных через Application Server. Я использую mysql DB, но я также пытался использовать базу данных Postgre, и ошибка такая же. Кажется, все в порядке, но когда я пытаюсь получить доступ к приложению, на консоли появляется сообщение об ошибке, которая сообщает мне, что соединение с базой данных было провалено. Мой код следующий:

Мой Jboss standalone.xml.

<datasource jndi-name="java:jboss/jdbc/exampleDS" pool-name="jdbc/exampleDS" enabled="true" use-java-context="true" use-ccm="true">
                    <connection-url>jdbc:mysql://127.0.0.1:3306/example?useSSL=false</connection-url>
                    <driver>mysql-connector-java-5.1.43-bin.jar</driver>
                    <pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>100</max-pool-size>
                        <prefill>true</prefill>
                    </pool>
                    <security>
                        <user-name>root</user-name>
                        <password>password</password>
                    </security>
                    <validation>
                        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
                        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
                    </validation>
                </datasource>
<driver name="mysql-connector-java-5.1.43-bin.jar" module="com.mysql">
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlDataSource</xa-datasource-class>
                    </driver>

Мой web.xml

<resource-ref>
        <description>example</description>
        <res-ref-name>jdbc/exampleDS</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref>

Мой джавакод

private ServiceLocator() {
    try {
        this.initCtx = new InitialContext();
        this.envCtx = (Context) initCtx.lookup("java:comp/env");
        DataSource ds = (DataSource)
                envCtx.lookup("jdbc/exampleDS");
    } catch (NamingException e) {
        ApplicationException apRE = new ApplicationException(ErrorCode.E_JDNI001, e);
        LogService.getLog().fatal(apRE.getMessage(), apRE);
        throw apRE;
    }
}

Наконец, когда я запускаю свой сервер jboss, ничего не появляется, но консоль сказала, что таблицы моей БД не существуют.

Я ценю помощь <3

  • 0
    Пожалуйста, включите трассировку стека, которая печатается в консоли / журнале, когда это происходит.
  • 0
    У меня были похожие проблемы при попытке использовать мой драйвер MySQL jdbc. Пожалуйста, убедитесь, что драйвер mysql правильно установлен в нужной папке.
Теги:
jboss

1 ответ

0
Лучший ответ

Я исправил ошибку. Первое, что нужно сделать, это создать jboss-web.xml, где web.xml, в моем случае, webapp/WEB-INF. Он должен быть похож на следующее:

<jboss-web>    
  <resource-ref>  
    <res-ref-name>jdbc/exampleDS</res-ref-name>  
    <jndi-name>java:jboss/jdbc/exampleDS</jndi-name> 
  </resource-ref>  
</jboss-web>  

После того, как это было создано, мы должны создать module.xml внутри modules-> com → mysql-> main, содержащий следующее:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="com.mysql">
<resources>
    <resource-root path="mysql-connector-java-5.1.43-bin.jar"/>
</resources>
<dependencies>
   <module name="javax.api"/>
   <module name="javax.transaction.api"/>
</dependencies>
</module>

Вам также нужно вставить.jar, который вы также использовали внутри основного каталога. Что касается javacode, вам нужно изменить initCtx.lookup("java: comp/env"); для этого: initCtx.lookup("java:");

Все это :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню