我一直在尝试获取用于 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:
- 您的网络上下文的 WEB-INF/lib, 这意味着它仅适用于 您的应用(可能不是坏事)
- 如果您使用的是 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/