未处理的异常类型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”提供给我的连接字符串是错误的。
再次感谢所有的帮助, 米奇。