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,提到的 Gradle 配置就足够了。
要修复 2,请确保安装了 MySQL 的捆绑包,您可以将其放入部署文件夹或 osgi/modules 文件夹中。
要修复 3,您需要在 bnb.bnd 文件中声明包级依赖项。
3 真的很奇怪,因为当你使用 bndtools 时,你通常会要求该工具检测你与
的依赖关系
Import-Package: *
但在这种情况下,依赖项是由按名称加载的 类 创建的,在字符串 中,这会强制您使用显式声明的依赖项
Import-Package: com.mysql.jdbc, *
我的 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,提到的 Gradle 配置就足够了。
要修复 2,请确保安装了 MySQL 的捆绑包,您可以将其放入部署文件夹或 osgi/modules 文件夹中。
要修复 3,您需要在 bnb.bnd 文件中声明包级依赖项。
3 真的很奇怪,因为当你使用 bndtools 时,你通常会要求该工具检测你与
的依赖关系Import-Package: *
但在这种情况下,依赖项是由按名称加载的 类 创建的,在字符串 中,这会强制您使用显式声明的依赖项
Import-Package: com.mysql.jdbc, *