невозможно установить соединение jdbc в файл jsp - PullRequest
0 голосов
/ 08 апреля 2011

эй, все, что я пытаюсь иметь простое соединение jdbc в моем файле jsp, файл как под:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<%@page import="java.sql.DriverManager"%><html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
hello world.
<% 

try{
    Class.forName("com.mysql.jdbc.Driver");
    DriverManager.getConnection("jdbc:mysql://localhost:3306/saurabh","root","");
    System.out.println("Connection successful");
}catch(Exception e){
    e.printStackTrace();
}

%>
</body>
</html>

всякий раз, когда я пытаюсь запустить этот код, я получаю следующий вывод консоли в eclipse:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)
    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.myJspDemo_jsp._jspService(myJspDemo_jsp.java:68)
    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:386)
    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:859)
    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)

И последнее, когда я пытался установить такое же соединение из простого файла Java, тогда это работало. Так в чем же проблема с файлом JSP.

PS: я работаю над дистрибутивом Ubuntu 10.10 и Eclipse 3.5. И я также добавил файл jar к пути сборки java проекта. И это работает очень хорошо на окнах.

Так что же делать ??

Заранее спасибо:)

Ответы [ 3 ]

3 голосов
/ 08 апреля 2011

Ваш JAR-файл драйвера mysql должен быть помещен в каталог WEB-INF/lib вашего проекта перед его развертыванием на сервере.

3 голосов
/ 08 апреля 2011

Вам необходимо развернуть драйвер mysql в вашем контейнере сервлетов (Tomcat / Jetty), чтобы JSP могли их найти.

Но, как сказал @crafstman в комментарии, очень плохо вставлять в код индикаторы, связанные с БД. Будь то по соображениям безопасности, будь по производительности.

0 голосов
/ 08 апреля 2011

Поставьте MySQL driver на tomcat/lib или Вы можете установить драйвер MySQL на yourapplicationproject/WebContent/WEB-INF/lib

Помещение соединения с базой данных в jsp не является хорошей практикой. Я буду лучше, если вы установите соединение с базой данных в Servlet code

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