Не удалось получить драйвер JDBC для MySQL в среде Tomcat - PullRequest
3 голосов
/ 19 мая 2010

Я пытался получить класс Driver для подключения JDBC к MySQL. Рабочая станция работает на Linux, Fedora 10. Я вручную установил переменную classpath для Java с помощью CLI следующим образом:

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

Это показывает, что я добавил самый последний архив jar-соединений для mysql в свою переменную 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.

Вы можете проверить эти страницы ошибок по следующим ссылкам: страница ошибки classpath страница ошибки catalina Страница ошибки tomcat

Кажется, из моего ограниченного знания JSP и сервлета среда Tomcat "игнорирует" мой Java CLASSPATH? В этом случае я не могу настроить пакет MySQL JDBC для работы моих сервлетов (JSP, в любом случае, только сервлет).

Я не уверен, как решить эту проблему. Было бы лучше, если бы я использовал IDE, такую ​​как Eclipse или NetBeans, и создал реальное «веб-приложение» на Java, чтобы все можно было «самостоятельно настраивать» с помощью XML-файла конфигурации web.config? Так что я могу обойти это ограничение среды Tomcat?

Большое спасибо за предложения заранее.

Ответы [ 2 ]

6 голосов
/ 19 мая 2010

Это показывает, что я добавил последние mysql подключение jar архив к моему Переменная CLASSPATH.

Жаль, что Tomcat (и все другие серверы приложений Java EE) игнорируют любую системную переменную среды CLASSPATH.

Вы должны добавить JAR-файлы драйвера JDBC в одно из двух мест:

  1. WEB-INF / lib для вашего веб-контекста, Это означает, что он доступен ТОЛЬКО для ваше приложение (не может быть плохо)
  2. На сервере Tomcat / lib, если вы используете версию 5.x или / lib, если вы используете версию 6.x.

Я считаю, что Tomcat 6.x требует, чтобы вы поместили JAR-файлы драйвера JDBC в /lib.

1 голос
/ 19 мая 2010

Возможно, вы захотите узнать, как упаковать военный файл, поскольку это будет самый простой способ установить веб-приложение, если у вас будет несколько файлов.

Ваши jar-файлы будут помещаться в каталог lib и легко найдутся tomcat.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...