2017-10-04 190 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