oracle.jdbc.driver.OracleDriver ClassNotFoundException

时间:2013-03-24 12:59:51

标签: java eclipse jdbc oracle10g classnotfoundexception

这是我的错误代码。我的classes12.jar已被导入为外部jar。

import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginAction extends HttpServlet {
Connection conn;
Statement stmt;
ResultSet rs;
String query = "SELECT * FROM v_urja_login";
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = response.getWriter();
    out.println("Hello");
    String u_name = request.getParameter("uname");
    String u_pass = request.getParameter("upass");
    out.println(u_name);
    out.println(u_pass);
    try{
        Class.forName("oracle.jdbc.driver.OracleDriver");
        conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","urja","urja");
        stmt = conn.createStatement();
        rs = stmt.executeQuery(query);
    }catch(SQLException sex){
        sex.printStackTrace();
    } catch (ClassNotFoundException cnf) {
        cnf.printStackTrace();
    }
}
}

堆栈跟踪:

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at LoginAction.doPost(LoginAction.java:27)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:931)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)

8 个答案:

答案 0 :(得分:9)

   Class.forName("oracle.jdbc.driver.OracleDriver");

这一行会导致ClassNotFoundException,因为您没有将ojdbc14.jar文件放在项目的lib文件夹中。或者你还没有设置所需jar的classpath

答案 1 :(得分:6)

java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver

只需将 ojdbc14.jar 添加到您的类路径中。

以下是在eclipse中添加ojdbc14.jar的步骤:

1)在项目内

2)图书馆

3)右键单击JRE系统库

4)构建路径

5)选择配置构建路径

6)点击Add external JARs ...

7)C:\ oraclexe \ app \ oracle \ product \ 10.2.0 \ server \ jdbc \ lib

8)在这里你会得到ojdbc14.jar

9)选择此处

10)打开

11)好的

保存并运行您将获得输出的程序。

答案 2 :(得分:3)

在Eclipse中,右键单击您的应用程序

运行方式 - >运行配置 - > 类型过滤器文本框

中选择您的服务器

然后在 Bootstrap条目下的Classpath中添加 classes12.jar文件,然后点击应用
现在,运行文件......这对我有用!!

答案 3 :(得分:0)

尝试通过服务器lib添加ojdbc6.jar或其他版本" C:\ apache-tomcat-7.0.47 \ lib",

然后在eclipse中重启服务器。

答案 4 :(得分:0)

方法1:下载ojdbc.jar

将ojdbc6.jar添加到部署程序集。右键单击project-> properties->选择部署程序集 - >单击'添加' - >选择'从文件系统存档' - >浏览到保存ojdbc6.jar的文件夹.-> add jar->点击完成 - >应用/确定。

方法2:

如果您想将ojdbc.jar添加到maven依赖项,请点击以下链接:http://www.mkyong.com/maven/how-to-add-oracle-jdbc-driver-in-your-maven-local-repository/  。  。 即使您正在使用maven项目,也没有必要将ojdbc添加到maven依赖项(方法2),方法1(直接添加到部署程序集)也可以正常工作。

答案 5 :(得分:0)

1.右键单击您的java项目。

2.选择" RUN AS"。

3.选择" RUN CONFIGURATIOS ..."。

4.在页面左侧选择你的服务器然后你会看到" CLASS PATH"在riht侧的标签,只需点击它。

5.Hell on on" USER ENTRIES"并选择"添加外部JARS"。

6.选择" ojdbc14.jar"文件。

7.点击“应用”。

8.点击Run。

9.最后重新启动服务器,然后执行。

答案 6 :(得分:0)

在Eclipse中,

当您在servlet中使用JDBC时,驱动程序jar必须放置在项目的WEB-INF / lib目录中。

答案 7 :(得分:-1)

您可以添加任何具有上述指定类的JAR,如ojdbc14,ojdbc7,ojdbc6,但请确保已将其添加到类路径中。