2016-04-25 198 views
0

任何人都可以提出任何建議來幫助我。我已經嘗試過,閱讀和閱讀,但沒有運氣。未處理的異常類型ClassNotFoundException

我正在Windows 7上開發。

我在Eclipse Java EE IDE內部工作。

我正在運行Java版本8更新77(build 1.8.0_77-b03)。

我有一個Postgres數據庫在Cloudfoundry上運行良好(版本是PostgreSQL 9.4.5)。

我可以使用php進行良好的交互。

我想通過Java servlet與它進行交互。

我已經有了我的servlet並且運行良好。 所以現在我想添加postgres功能。

我從PostgreSQL JDBC Driver donwload page下載JDBC42 Postgresql驅動程序,版本9.4-1208。我選擇這個,因爲它說「它支持Postgresql 7.2或更新,並且需要1.6或更新的JVM」

我將這個jar文件添加到我的項目的WEB_INF \ lib文件夾中。 我右鍵點擊它,並確保它添加到構建路徑。 (所以它現在也出現在MyServletProject \ Java Resources \ Libraries \ Web App Libraries下)。

我在我的servlet一個微不足道的方法:(字符串jdbc_uri是由Cloudfoundry提供給我在響應於該命令的一個比照ENV MyAppName在jdbc_uri字段

 import java.sql.Connection; 
     import java.sql.DriverManager; 
     import java.sql.SQLException; 

。 。 。 。 。

 String szMethod = request.getParameter("method"); 

     Connection dbcon = null; 
     try 
     { 
      //Class.forName("org.postgresql.Driver"); 

      dbcon = DriverManager.getConnection(jdbc_uri,"DBusername","DBpassword"); 
     } 
     catch (SQLException e) 
     { 
      szMethod = e.getMessage(); 
     } 

     response.setContentType("text/html"); 

     response.getWriter().write(szMethod); 

如果我在Cloud Foundry中運行這個(我從Eclipse導出爲.war文件,然後上傳到Cloud Foundry,我有一個HTML按鈕,執行這個servlet)我得到以下信息:

沒有合適的驅動程序找到了JDBC:Postgres的://等等,等等

你會發現,我已經註釋掉行:

的Class.forName( 「org.postgresql.Driver」);

因爲如果我包括它,然後在Eclipse中我得到一個彎彎曲曲的紅線在IDE中,如果我懸停在上下文菜單中說:

未處理的異常類型的ClassNotFoundException。

我非常堅持。它應該是這麼簡單:(

感謝您的任何幫助。 米奇。

回答

0

你的代碼似乎是正確的,只是刪除評論,並在你的方法中放一個拋出子句(如果你只是點擊錯誤標記並按照建議,eclipse會爲你做) 如果它找不到驅動程序,拋出異常,那麼你應該檢查類路徑。 我的建議是使用maven來管理你的項目依賴關係。

0

當類在classpath中不可用時,出現ClassNotFoundException。

所以,你正在創造戰爭。只需提取任何壓縮檔案的戰爭文件,並確保Postgresql驅動程序文件在您的戰爭或不?如果不是,再次建立你的項目。

我想你應該使用maven構建工具來添加依賴和創建戰爭。

1

已解決。

由Cloudfoundry命令「cf env MyApp」提供給我的連接字符串是錯誤的。

再次感謝所有的幫助, 米奇。

相關問題