Настройте Tomcat, чтобы я мог подключить страницу JSP к MySQL - PullRequest
0 голосов
/ 01 декабря 2010

Мне нужно подключиться к базе данных MySQL со страницы JSP с помощью метода DriverManager.getConnection(). Я поместил JAR-файл MySQL Connector-J в библиотеку Tomcat. Я запустил тот же код, что и обычное Java-приложение, и оно работает, что заставляет меня думать, что есть проблема с Tomcat. Я получаю много исключений, первое из которых ClassNotFoundException, за которым следуют многие JasperException.

Не могли бы вы рассказать, какие шаги мне нужно будет выполнить при настройке сервлета для взаимодействия с MySQL со страницы JSP?


Обновление : Я попытался поместить в папку lib установочного корня Tomcat, а также /WEB-INF/lib, но проблема не устранена. Имя файла jar mysql-connector-java-5.1.13-bin.jar. Это правильный?

Вот исключение, которое я получаю

java.lang.ClassNotFoundException: com.mysql.jdbc.driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:128)
    at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java:66)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:75)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:619)

1 Ответ

4 голосов
/ 01 декабря 2010

Если предположить, что ClassNotFoundException ссылается на драйвер JDBC com.mysql.jdbc.Driver, то это означает, что JAR-файл Connector-J не был правильно размещен в пути к классам.

Фактически, размещение его впапка Tomcat /lib должна решить эту проблему.Однако, поскольку вы, кажется, уже сделали это, это может означать, что либо вы вообще не поместили туда правильный JAR-файл, либо папка /lib, о которой вы говорите, на самом деле является неправильной папкой.В случае Tomcat 6.0 или новее это должна быть папка /lib внутри папки установки Tomcat (она должна уже существовать, вы не должны создавать ее самостоятельно!).В случае Tomcat 5.5 или более ранней версии это должна быть папка /shared/lib внутри установочной папки Tomcat (опять же, она должна уже быть там).

Альтернативой является помещение файла JAR в папку /WEB-INF/libваше веб-приложение.Единственным недостатком является то, что файл JAR будет в конечном итоге только в пути к классу используемого веб-приложения.Для всех других веб-приложений в том же контейнере сервлетов вы должны продублировать файл JAR.Кроме того, вы не сможете использовать средства пула соединений, предоставляемые Tomcat, для повышения производительности соединения.


Обновление : согласно вашей трассировке стека:

java.lang.ClassNotFoundException: com.mysql.jdbc.driver

Неверное имя класса.Java чувствительна к регистру.Это должно быть com.mysql.jdbc.Driver.

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