执行以下代码:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (Exception e) {
e.printStackTrace();
}
}
我得到例外:
java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
我已经进口了所有的tomcat jars& ojdbc14.jar的。
奇怪的是当我在main()中的一个单独的类中编写相同的代码时,它可以工作:
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("works");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
看起来你没有把ojdbc14.jar放在正确的位置。它应该驻留在其他项目特定jar所在的Web-INF / lib文件夹中。出于调试目的,尝试导入类并查看以下语句是否正确解释
OracleDriver od= new OracleDriver();
答案 1 :(得分:1)
可能有几个选项
选项:
ojdbcxx.jar
文件放在WEB-INF/lib
目录下。ojdbcxx.jar
置于<tomcat home dir>/common/lib
。答案 2 :(得分:1)
您需要了解main()和doPost的调用机制。
main()的
java工具启动Java应用程序。它通过启动Java运行时环境,加载指定的类以及调用该类的main方法来实现此目的。
这是您拥有Java代码的构建路径,因此lib应该存在于此处。
的doPost()
由服务器调用。
它的结构是
App Name
-WEB-INF
-classes (all class file)
-lib (all jars)
-META-INF
所以在这里,你需要放置的jar是在lib文件夹中。
答案 3 :(得分:1)
我猜servlet
设置为早期初始化。将ojdbc14.jar
放在tomcat lib
目录中或将servlet
设置为延迟初始化。