ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse [英] ClassNotFoundException oracle.jdbc.driver.OracleDriver only in servlet, using Eclipse

查看:139
本文介绍了ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码失败:

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

与错误:


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

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

两个 println s print:

The two printlns print:

Wed_Jun_22_11:18:51_PDT_2005
false

这使我觉得该类存在,可以找到。此外,这个完全相同的类也可以在非servlet应用程序中使用。

This makes me think the class exists and can be found. Also this exact same class works in an a non-servlet application.

我已经重新启动了一次,重新启动了应用程序/ servlet多次。所有的值都被硬编码,使其简单而简短。

I have rebooted everything multiple times and regenerated the application/servlet multiple times. All values have been hard coded to make it simple and short.

private static Connection getDBConnection() throws Exception {
    System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE);
    System.out.println(Class.class.desiredAssertionStatus());
    //load the driver
    Class.forName("oracle.jdbc.driver.OracleDriver");

    return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass");
}

失败的完整servlet:

full servlet that fails:

package servletClass_3;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;

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

/**
 * Servlet implementation class OneMoreBookStore
 */
@WebServlet("/OneMoreBookStore")
public class OneMoreBookStore extends HttpServlet {

    private static final long serialVersionUID = 1L;

    /**
     * @see HttpServlet#HttpServlet()
     */
    private static Connection getDBConnection() throws Exception {

        System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE);
        System.out.println(Class.class.desiredAssertionStatus());

        //load the driver
        Class.forName("oracle.jdbc.driver.OracleDriver");
        return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        try
        {
            Connection con = getDBConnection();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

}

作品:

package servletClass_3;

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

public class DBConnect {

    private static Connection getDBConnection() throws Exception {
        System.out.println(oracle.jdbc.driver.OracleDriver.BUILD_DATE);
        System.out.println(Class.class.desiredAssertionStatus());

        //load the driver
        Class.forName("oracle.jdbc.driver.OracleDriver");
        return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "SYSTEM", "pass");
    }
    public static void main(String[] args) {
        try
        {
            Connection con = getDBConnection();
            System.out.println("connection worked");
            con.close();
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }

}

m使用:


  • Eclipse JavaEE 1.4.2

  • Tomcat 7

  • jdk1.7

  • Oracle 11g R2

  • Windows 7 64bit

  • Eclipse JavaEE 1.4.2
  • Tomcat 7
  • jdk1.7
  • Oracle 11g R2
  • Windows 7 64bit

推荐答案

可能您没有在应用程序中部署oracle驱动程序。

Probably you aren't deploying the oracle driver with your application.

您有几个选项:


  • 您可以将驱动程序jar放在您的 WEB-INF / lib 文件夹中

  • 将其与应用程序一起导出。 - >右键单击项目 - > 构建路径 - > 配置构建路径... - > 订单和导出 - >检查驱动程序。

  • 将驱动程序jar放在应用程序服务器的共享或库扩展文件夹中。 (你应该选择一个或两个,但是。)

  • You can place the driver jars in your WEB-INF/lib folder
  • You export it with your application. -> Right Click on Project -> Build Path-> Configure Build Path... -> Order and Export -> Check the drivers.
  • Place the driver jars in a shared or library extension folder of your application server. (You should go with option one or two though.)

这篇关于ClassNotFoundException oracle.jdbc.driver.OracleDriver仅在servlet中使用Eclipse的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆