java - Tomcat环境下获取JDBC Driver for MySQL失败

标签 java jsp tomcat jdbc

我一直在尝试获取用于 JDBC 连接到 MySQL 的驱动程序类。 工作站运行在 Linux、Fedora 10 上。 我已经通过 CLI 为 Java 手动设置了类路径变量,如下所示:

bash-3.2$ echo $CLASSPATH
/home/cmao/public_html/jsp/mysql-connector-java-5.1.12-bin.jar

这表明我已将最新的 mysql 连接 jar 存档添加到我的 CLASSPATH 变量中。

我已经创建了一个可以找到的测试 JSP 页面 here

这个页面的源代码是:

<%@page language="java"%>
<%@page import="java.sql.*"%>
<%@page import="java.util.*"%>
<html>
<head>
    <title>UTS JDBC MySQL connection test page</title>
</head>
<body>
<%
    Connection con = null;
    out.print("Java version is   : " + System.getProperty("java.version") + "<br />");
    out.print("Tomcat version is : " + application.getServerInfo() + "<br />");
    out.print("Servlet version is: " + application.getMajorVersion() + "<br />"); 
    out.print("JSP version is    : " + JspFactory.getDefaultFactory().getEngineInfo().getSpecificationVersion() +"<br />");
    //out.print("Java classpath is : " + System.getProperty("java.class.path")+ "<br />");
    //out.print("JSP classpath is  : " + appliaction.getAttribute("org.apache.catalina.jsp_classpath") + "<br />");
    //out.print("Tomcat classpath is : " + System.getProperty("org.apache.tomcat.common.classpath") + "<br />");

    try
    {
        Class c = Class.forName("com.mysql.jdbc.Driver");
    }
    catch(Exception e)
    {
        out.println("Error! Failed to obtain JDBC driver for MySQL... Missing class \"com.mysql.jdbc.Driver\"<br />");
    }
%>
</body>
</html>

那些被注释掉的行都不起作用,会抛出各种 Jsper Expetions。

您可以从以下链接检查这些错误页面: classpath Error page catalina Error page tomcat Error page

看来,从我对 JSP 和 Servlet 的有限了解来看,Tomcat 环境“忽略”了我的 Java CLASSPATH?在这种情况下,我无法配置 MySQL JDBC 包来让我的 Servlet(JSP 只是一个 Servlet)工作。

我不确定如何解决这个问题。如果我使用像 Eclipse 或 NetBeans 这样的 IDE 并创建一个真正的 Java“Web 应用程序”以便所有内容都可以通过使用 web.config XML 配置文件“自行配置”会更好吗?这样我就一定可以绕过这个Tomcat环境限制了?

非常感谢您提前提出建议。

最佳答案

This shows that I've added the lastest mysql connection jar archive to my CLASSPATH variable.

Tomcat(和所有其他 Java EE 应用程序服务器)忽略任何系统 CLASSPATH 环境变量对您来说太糟糕了。

您应该在以下两个位置之一添加 JDBC 驱动程序 JAR:

  1. 您的网络上下文的 WEB-INF/lib, 这意味着它仅适用于 您的应用(可能不是坏事)
  2. 如果您使用的是 5.x 版,则在 Tomcat 服务器/lib 中;如果您使用的是 6.x 版,则在/lib 中。

我相信 Tomcat 6.x 要求您将 JDBC 驱动程序 JAR 放在/lib 中。

关于java - Tomcat环境下获取JDBC Driver for MySQL失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2862238/

相关文章:

java - 删除用户选择的记录?

java - 重定向后 Tomcat 不应用过滤器(转发?)

rest - 带有 IntelliJ 和 Tomcat 的 Java-ee REST 服务器

angular - 如何使用 tomcat 或应用程序服务器的环境变量以 Angular 配置基本 href?

java - 为什么 Log4j2 在 Windows bash 控制台中抛出错误

java - 使用可为空/可选标记时进入下一个循环迭代

javascript - 使用 JS 从文本区域获取值并将其传递给服务器(jsp),无需重新加载页面

java - 将参数从一个 jsp 文件传递​​到包含的 jsp 文件?

java - 从 arraylist 创建 3 列 html 表?

c# - IIS 6.0可以像tomcat一样显示服务器状态吗