Liferay MVC 门户 java.lang.ClassNotFoundException

Liferay MVC Portlet java.lang.ClassNotFoundException

我的 Liferay 门户 7 ga4 运行 在 wildfly 10 上。我已经创建并部署了 Liferay MVC portlet。我正在尝试连接到 MySql 数据库但出现此错误:java.lang.ClassNotFoundException: com.mysql.jdbc.Driver

我导入了mysql-connector-java-5.1.42-bin.jar(右键单击项目>构建路径>配置构建路径>添加JAR。它在下面"Referenced Libraries".

这里是 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 的新结构下,您的环境将需要有一个捆绑包,为您提供此 Jar 中使用的包。 Tomcat自带的不计入

由于此版本的 MySQL 是一个 OSGi 包,您可以将其放入您的部署文件夹或将其放在您的模块文件夹中。

如果你想,你也可以使用其他版本... https://www.e-systems.tech/web/guest/blog/-/blogs/liferay-with-mysql-5-7-driver-changes


这个问题有 3 个问题

  1. 构建环境配置
  2. 运行时环境配置
  3. 运行时配置

要修复 1,提到的 Gradle 配置就足够了。

要修复 2,请确保安装了 MySQL 的捆绑包,您可以将其放入部署文件夹或 osgi/modules 文件夹中。

要修复 3,您需要在 bnb.bnd 文件中声明包级依赖项。

3 真的很奇怪,因为当你使用 bndtools 时,你通常会要求该工具检测你与

的依赖关系

Import-Package: *

但在这种情况下,依赖项是由按名称加载的 类 创建的,在字符串 中,这会强制您使用显式声明的依赖项

Import-Package: com.mysql.jdbc, *