我的 Liferay 门户 7 ga4 正在 Wildfly 10 上运行。我创建了一个 Liferay MVC portlet 并进行了部署。我正在尝试连接到 MySql 数据库,但收到此错误: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
我通过(右键单击项目>构建路径>配置构建路径>添加 JAR 导入了 mysql-connector-java-5.1.42-bin.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 中刷新 gradle 项目。
另外,请记住,如果您的 portlet 在基于 OSGi 的新结构下运行,您的环境将需要有一个 bundle ,为您提供从此 Jar 中使用的包。 Tomcat 自带的不考虑在内。
由于此版本的 MySQL 是 OSGi bundle ,因此您可以将其放入部署文件夹中,或者只是将其放在模块文件夹中。
如果您愿意,也可以使用其他版本... https://www.e-systems.tech/web/guest/blog/-/blogs/liferay-with-mysql-5-7-driver-changes
<小时/>有 3 个与此问题相关的问题
- 构建环境配置
- 运行时环境配置
- 运行时配置
要修复 1,提到的 Gradle 配置就足够了。
要修复 2,请确保安装了 MySQL 的 bundle ,您可以将其放入部署文件夹或 osgi/modules 文件夹中。
要修复 3,您需要在 bnb.bnd 文件中声明包级别依赖项。
3 确实很奇怪,因为当您使用 bndtools 时,您通常会要求该工具使用
检测您的依赖关系Import-Package: *
但在这种情况下,依赖项是由按名称加载的类创建的,在字符串中,这迫使您使用显式声明的依赖项
Import-Package: com.mysql.jdbc, *
关于java - Liferay MVC Portlet java.lang.ClassNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46559600/