mysql - 无法通过 Eclipse 在 servlet 中加载 Oracle 或 MySQL 驱动程序

标签 mysql eclipse oracle servlets

我已经为这个问题苦苦挣扎了几个小时,并且感到沮丧。在这里和其他网站上看到了一些带有建议的帖子,但似乎没有一个对我有用。

我正在编写一些servlet。我正在将 Eclipse 与 JBoss 7.1 服务器一起使用。该部分运行良好。 Servlet 运行得很好。

我正在尝试连接到 Oracle XE 数据库。 Oracle 已全部配置完毕,并且我已设置好表。

我正在尝试让我的 servlet 连接到 Oracle 数据库,但在该过程的第一步就失败了;它不会加载驱动程序。名为 LoginAction 的 servlet 尝试通过调用同一包中不同文件中定义的另一个类中的静态方法来建立数据库连接。以下是负责创建数据库连接的方法:

protected static Connection getDatabaseConnection()
{
    boolean driverloaded = true;

    //Load the driver.
    try
    {
        Class.forName("oracle.jdbc.OracleDriver");
    }
    catch(ClassNotFoundException e)
    {
        System.out.println("Failed to load driver!");
        driverloaded = false;
    }

    if(driverloaded)
        System.out.println("loaded driver!");
    else
        return null;

    //Create and return a database Connection.
    try
    {
        return DriverManager.getConnection(dbURL,dbUser,dbPass);
    }
    catch(SQLException e)
    {
        System.out.println("Problem making database connection!");
        return null;
    }
}

如果我将上述类作为独立的 Java 程序运行,则驱动程序会加载。我稍后在文件中添加了一个主函数,我计划稍后将其删除,该函数仅调用 getDatabaseConnection() 函数。

我已完成以下操作:

确保 Oracle 驱动程序位于类路径中。通过Eclipse,右键单击工作区中的项目,转到属性,选择Java构建路径,单击选项卡,单击添加外部 JAR,将文件 OJDBC14.jar 添加到类路径。

将 OJDBC14.jar 文件放在 WEB-INF/lib 文件夹中。

不好。

我也尝试过使用MySQL。改为使用 Class.forName("com.mysql.jdbc.Driver") 并加载“mysql-connector-java-5.1.25-bin.jar”文件。

这是我的 .classpath 文件,所以我很确定驱动程序位于类路径中。

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
	<classpathentry kind="src" path="src"/>
	<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.jboss.ide.eclipse.as.core.server.runtime.runtimeTarget/JBoss 7.1 Runtime">
		<attributes>
			<attribute name="owner.project.facets" value="jst.web"/>
		</attributes>
	</classpathentry>
	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
	<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
	<classpathentry exported="true" kind="lib" path="C:/Dropbox/Projects/Eintern/Eintern_servlets/intlops/ClientIntakeSystem/WebContent/WEB-INF/lib/ojdbc14.jar"/>
	<classpathentry exported="true" kind="lib" path="C:/Dropbox/Projects/Eintern/Eintern_servlets/intlops/ClientIntakeSystem/WebContent/WEB-INF/lib/mysql-connector-java-5.1.25-bin.jar"/>
	<classpathentry kind="output" path="build/classes"/>
</classpath>

我实在是没有主意了。我真的不明白,因为我以前写过连接数据库的servlet。当我这样做时,我使用 Tomcat 而不是 JBoss...这是我能想到的唯一区别。

最佳答案

尝试检查部署程序集并确保添加要导出到构建路径的外部库。

关于mysql - 无法通过 Eclipse 在 servlet 中加载 Oracle 或 MySQL 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31998847/

相关文章:

php - 我如何开始使用 PHP 和 MySQL

mysql - 按月获取记录 - mysql

php - 从 MySQL 数据库列中的数据中剥离 HTML

java - 如何在 Mac OS X 上的 Eclipse 中使用 Java Swing?

java - 多线程Java程序中的连接池

sql - Oracle 全局临时表 - 最大记录数?

mysql - 如何找到列名长度大于 5 的所有列?

HTML 文件的 Eclipse 语法颜色

eclipse - 在eclipse中,我可以自定义委托(delegate)方法代码模板吗?

sql - 如何在sql developer的 "Enter Binds"对话框中使用日期变量?