Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
716 views
in Technique[技术] by (71.8m points)

java - Failed to obtain JDBC Driver for MySQL under Tomcat environment

I've been trying to obtain the Driver class for JDBC connection to MySQL. The workstation is running on Linux, Fedora 10. I have manually set up the classpath variable for Java by CLI like this:

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

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

I've created a test JSP page which can be found here

And source code for this page is:

<%@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>

None of those commented out line would work, various Jsper Expetions would be thrown.

You can check those Error pages from the following links: classpath Error page catalina Error page tomcat Error page

It seems, from my limited knowledge of JSP and Servlet, the Tomcat environment "ignores" my Java CLASSPATH? In which case I cannot configure the MySQL JDBC package to let my Servlets(a JSP is but a Servlet anyway) work.

I am not sure how to fix this issue. would it be better if I use an IDE like Eclipse or NetBeans and create a real Java "web app" so that everything can be "self-configured" by the usage of a web.config XML configuration file? So that I can certainly bypass this Tomcat environment restriction?

Many thanks for the suggestions in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

Too bad for you that Tomcat (and all other Java EE app servers) ignore any system CLASSPATH environment variable.

You are supposed to add JDBC driver JARs in either one of two places:

  1. WEB-INF/lib for your web context, which means it's available ONLY to your app (might not be a bad thing)
  2. In the Tomcat server/lib if you're using version 5.x or /lib if you're using version 6.x.

I believe that Tomcat 6.x requires that you put JDBC driver JARs in /lib.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...