/ / Клас не знайдено Виняток для com.mysql.jdbc.Driver в Wildfly 10 - java, mysql, jdbc, wildfly

Class Not Found Exception for com.mysql.jdbc.Driver in Wildfly 10 - java, mysql, jdbc, wildfly

Я використовую Wildfly 10, і мій джерело даних в автономному файлі.xml:

        <datasources>
<datasource jta="true" jndi-name="java:/MySqlDS" pool-name="MySQL_AAA" enabled="true" use-ccm="true">
<connection-url>jdbc:mysql://localhost:3306/aaa</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver>mysql-connector-java-5.1.35-bin.jar_com.mysql.jdbc.Driver_5_1</driver>
<security>
<user-name>root</user-name>
<password>root</password>
</security>
<validation>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker"/>
<background-validation>true</background-validation>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter"/>
</validation>
</datasource>

Я використовую цей код у моєму Java-бобі:

 Class.forName("com.mysql.jdbc.Driver");

і я отримую це повідомлення про помилку:

10:29:59,210 ERROR [stderr] (default task-15) java.lang.ClassNotFoundException: com.mysql.jdbc.Driver from [Module "deployment.AAA_5.war:main" from Service Module Loader]


10:29:59,210 ERROR [stderr] (default task-15) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)

Я читав документацію, яка говорила, що мені потрібно матидрайвер у моїй папці lib, але це не працювало. Я впевнений, що рішення просте, але я цього не бачу. Чи може хтось вказати мені в правильному напрямку. Деякі документи, які я можу використовувати як ресурс, були б чудовими .

Відповіді:

1 для відповіді № 1

Увімкніть драйвер mysql в deployments папки у вашому wildfly, вона буде розгорнута автоматично, потім стане доступною.
РЕДАГУВАТИ: встановлення драйвера mysql JDBC в wildfly, оскільки розгортання не надасть вам доступ до класів mysql через поведінку навантажувачів класів, ви можете отримати доступ до з'єднань із базою даних через jndi лише джерелами даних, і вам не потрібно буде користуватися Class.forName().

InitialContext context=new InitialContext();
DataSource d=(DataSource)context.lookup(yourDataSourceName);

Однак якщо вам все-таки потрібно використовувати специфічні класи mysql у своєму проекті, вам доведеться скинути драйвер у свій web-project/WEB-INF/lib папку. (але будьте уважні з цього приводу, оскільки це не буде пов'язано з розгорнутим драйвером)