Liferay MVC Portlet java.lang.ClassNotFoundException

63
6

Мой портал Liferay 7 ga4 работает на wildfly 10. Я создал портлет Liferay MVC и развернул его. Я пытаюсь подключиться к базе данных MySql, но получаю эту ошибку: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

Я импортировал mysql-connector-java-5.1.42-bin.jar (Щелкните правой кнопкой мыши по проекту> Путь сборки> Настроить путь сборки> Добавить JAR файлы. Он перешел под "Связанные библиотеки".

enter image description here

И вот код view.jsp

try{
String connectionURL = "jdbc:mysql://localhost/employees";

Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;

Class.forName("com.mysql.jdbc.Driver").newInstance();
connection = DriverManager.getConnection(connectionURL, "root", "");
statement = connection.createStatement();

if(!connection.isClosed()){
out.println("Successfully connected to MySQL server" + "<br/>");
}

} catch(Exception ex){

out.println("Unable to connect to database: "+ ex);

}

Может кто-нибудь, пожалуйста, помогите мне? Я совершенно не знаком с Liferay и Java.

Спасибо.

спросил(а) 2021-01-19T18:36:25+03:00 6 месяцев назад
1
Решение
63

Из приведенной информации вам, вероятно, не хватает зависимости у вас gradle.build

Добавлять:

// https://mvnrepository.com/artifact/mysql/mysql-connector-java
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.42'

Щелкните правой кнопкой мыши проект, а в Gradle - обновите проект градиента.

Кроме того, имейте в виду, что если портлет работает под новой структурой на основе OSGi, ваша среда должна иметь комплект, который предлагает вам пакеты, используемые из этого Jar. Тот, который поставляется с Tomcat, не будет учитываться.

Поскольку эта версия MySQL представляет собой пакет OSGi, вы можете загрузить его в папку развертывания или просто вставить в свою папку с модулями.

Вы также можете использовать другие версии, если хотите... https://www.e-systems.tech/web/guest/blog / -/blogs/liferay-with-mysql-5-7-driver-changes

Есть три вопроса, связанные с этим вопросом

Конфигурация среды сборки Конфигурация среды выполнения Конфигурация времени выполнения

Чтобы исправить 1, указанной конфигурации Gradle будет достаточно.

Чтобы исправить 2, убедитесь, что пакет MySQL установлен, его можно удалить в папке развертывания или в папке osgi/modules.

Чтобы исправить 3, вам нужно будет объявить зависимость уровня пакета в файле bnb.bnd.

3 действительно странно, потому что, когда вы используете bndtools, вы обычно просите инструмент обнаруживать ваши зависимости с помощью

Импорт-пакет: *

Но в этом случае зависимость создается классами, которые загружаются по имени, в строке, что заставляет вас использовать явно заявленную зависимость

Импорт-пакет: com.mysql.jdbc, *

ответил(а) 2021-01-19T18:36:25+03:00 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема