我一直在尝试获取与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环境限制?
非常感谢您提前提出建议。
对于您来说太遗憾了,Tomcat(以及所有其他Java EE应用程序服务器)忽略任何系统CLASSPATH环境变量。
您应该在以下两个位置之一添加JDBC驱动程序JAR:
我相信Tomcat 6.x要求您将JDBC驱动程序JAR放在/ lib中。