小编典典

在Tomcat环境下无法获取MySQL的JDBC驱动程序

jsp

我一直在尝试获取与MySQL的JDBC连接的Driver类。该工作站在Linux Fedora
10上运行。我已经通过CLI手动为Java设置了classpath变量,如下所示:

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

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

我已经创建了一个测试JSP页面,可以在这里找到

此页面的源代码是:

<%@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错误页面 catalina错误页面 tomcat错误页面

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

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

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


阅读 277

收藏
2020-06-08

共1个答案

小编典典

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

对于您来说太遗憾了,Tomcat(以及所有其他Java EE应用程序服务器)忽略任何系统CLASSPATH环境变量。

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

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

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

2020-06-08