JBOSS AS 7 и ошибка com.mysql.jdbc.Driver - PullRequest
0 голосов
/ 18 января 2012

Я использую JBOSS AS 7.0.2. Я хочу создать соединение с MySQL сервером по-старому (я знаю, что должен использовать JNDI, но мне просто нужно это для некоторых быстрых вещей):

Class.forName("com.mysql.jdbc.Driver").newInstance();
con = DriverManager.getConnection(.....);

У меня mysql-connector-java-5.1.18-bin.jar, включенный в C: \ Java \ jboss-as-7.0.2.Final \ standalone \ deployments. Я также добавил его в путь сборки. Я могу видеть свои таблицы через Data Source Explorer. Но когда я пытаюсь подключиться к нему через код, он создает исключение при попытке создать новый экземпляр:

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

Предложение catch класса ClassNotFoundException перехватывает это исключение:

Error: com.mysql.jdbc.Driver from [Module "deployment.Seminarska.war:main" from Service Module Loader]

Я нашел эту тему с этим решением:

Как правило, вы не должны включать драйверы JDBC в вашу войну. файл.

Я предлагаю вам пометить драйвер как предоставленный и добавить его в lib каталог сервера.

Что значит помечать драйвер как предоставленный ? Как это сделать?

1 Ответ

5 голосов
/ 18 января 2012

«Пометить драйвер как предоставленный» относится к тому, как вы указываете зависимости вашего модуля, если вы используете Maven в качестве инструмента для сборки. Зависимости могут иметь разные области действия, и «предоставленный» означает, что эта конкретная зависимость необходима для компиляции, но будет предоставлена ​​средой выполнения (обычно сервером приложений), поэтому ее не следует включать в упакованный артефакт (например, войну).

Подробнее об областях зависимостей Maven:

http://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html

Относительно того, как настроить источники данных в JBoss AS 7, вы можете найти инструкции здесь:

https://community.jboss.org/wiki/DataSourceConfigurationInAS7

...