未处理的异常类型ClassNotFoundException

问题描述:

任何人都可以提出任何建议来帮助我。我已经尝试过,阅读和阅读,但没有运气。未处理的异常类型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。

我非常坚持。它应该是这么简单:(

感谢您的任何帮助。 米奇。

你的代码似乎是正确的,只是删除评论,并在你的方法中放一个抛出子句(如果你只是点击错误标记并按照建议,eclipse会为你做) 如果它找不到驱动程序,抛出异常,那么你应该检查类路径。 我的建议是使用maven来管理你的项目依赖关系。

当类在classpath中不可用时,出现ClassNotFoundException。

所以,你正在创造战争。只需提取任何压缩档案的战争文件,并确保Postgresql驱动程序文件在您的战争或不?如果不是,再次建立你的项目。

我想你应该使用maven构建工具来添加依赖和创建战争。

已解决。

由Cloudfoundry命令“cf env MyApp”提供给我的连接字符串是错误的。

再次感谢所有的帮助, 米奇。