Liferay MVC Portlet java.lang.ClassNotFoundException
Мой портал Liferay 7 ga4 работает на wildfly 10. Я создал портлет Liferay MVC и развернул его. Я пытаюсь подключиться к базе данных MySql, но получаю эту ошибку: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
Я импортировал mysql-connector-java-5.1.42-bin.jar (Щелкните правой кнопкой мыши по проекту> Путь сборки> Настроить путь сборки> Добавить JAR файлы. Он перешел под "Связанные библиотеки".
И вот код 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.
Спасибо.
Из приведенной информации вам, вероятно, не хватает зависимости у вас 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, *