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 va开发者_StackOverflow社区riable.
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.
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:
- WEB-INF/lib for your web context, which means it's available ONLY to your app (might not be a bad thing)
- 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.
You may want to learn how to package up a war file, as that would be the simplest way to install the web application, if you are going to have several files.
Your jar files would go in the lib directory, and would be found easily by tomcat.
精彩评论