2017-10-04 184 views
1

我的Liferay portal 7 ga4正在wildfly 10上运行。我创建了一个Liferay MVC portlet并进行了部署。我试图连接到MySQL数据库,但得到这个错误:抛出java.lang.ClassNotFoundException:com.mysql.jdbc.DriverLiferay MVC Portlet java.lang.ClassNotFoundException

我通过进口的mysql-连接器的Java 42年5月1日 - 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完全陌生。

谢谢。

+1

这似乎并没有被重复,这个问题似乎与gradle这个配置和OSGi环境。你能不能显示你的gradle配置? – Victor

回答

1

从给出的信息,你可能错过了依赖于你gradle.build

地址:

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

右键点击你的项目,并在摇篮,刷新项目的gradle。另外,请记住,如果portlet在基于OSGi的新结构下运行,那么您的环境将需要一个捆绑包,为您提供从此Jar使用的包。 Tomcat自带的那个不会被记录下来。

由于这个版本的MySQL是一个OSGi包,你可以把它放到你的deploy文件夹中,或者直接放到你的modules文件夹中。

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


有关联到这个问题

  1. 构建环境配置
  2. 运行环境配置
  3. 3个问题
  4. 运行时配置

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

要修复2,确保安装了MySQL的捆绑软件,可以将它放在部署文件夹或osgi/modules文件夹中。

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

3是很奇怪的,因为当你使用bndtools,你通常问的工具,

Import-Package: *

但是,在这种情况下,依赖由类创建来检测你的依赖的名字被载入,在一个字符串,这迫使你使用显式声明的依赖

Import-Package: com.mysql.jdbc, *

+0

嗨,维克托,我包括在build.gradle文件和刷新gradle项目的依赖。我可以在Project和External Dependencies中看到mysql_connector jar文件,但错误仍然是“java.lang.ClassNotFoundException:com.mysql.jdbc.Driver”。 – Den

+0

红色感叹号消失了吗?你在这个问题中有两个问题,而不仅仅是一个问题 – Victor

+0

我现在问你应该修复你的运行时问题:将驱动程序和你的模块放到你的deploy文件夹中。 – Victor