2010-12-01 3 views
0

DriverManager.getConnection() 메소드를 사용하여 JSP 페이지에서 MySQL 데이터베이스에 연결해야합니다. 나는 MySQL Connector-J JAR 파일을 Tomcat lib에 넣었다. 나는 일반적인 자바 애플리케이션과 같은 코드를 실행했고 작동한다. Tomcat에 문제가 있다고 생각하게 만든다. 나는 많은 예외를 받고 있는데, 첫 번째 것은 이고, 많은 것은 JasperException이다.JSP 페이지를 MySQL에 연결할 수 있도록 Tomcat을 설정하십시오.

JSP 페이지에서 MySQL과 상호 작용하도록 서블릿을 구성 할 때 필요한 단계를 알려주시겠습니까?


업데이트 : 나는뿐만 아니라 /WEB-INF/lib 같은 루트를 설치 톰캣의 lib 폴더에 퍼팅 시도했지만 문제가 계속. jar 파일 이름은 mysql-connector-java-5.1.13-bin.jar입니다. 이게 맞습니까? 여기

내가 ClassNotFoundException이 JDBC 드라이버 com.mysql.jdbc.Driver를 참조된다고 가정

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) 
+0

코드는 무엇입니까? 나는 아무것도 볼 수 없다;) – Bozho

+0

그래서, 어떤 클래스가 발견되지 않습니까? 즉, 전체 스택 추적을 표시하고 관련 코드는 이것이 발생하는 곳을 표시합니다. 또한 Connection을 가져 오는 코드를 표시하십시오 (간단히 DriverManager.getConnection()이 충분하지 않음) – nos

+0

여러 개의 사용자 계정이 있습니다. 이 질문을 올린 곳의 PC/웹 브라우저로 돌아가십시오. 그런 다음 OpenID를 사용하여 계정을 등록하면 다른 모든 PC/웹 브라우저에서 동일한 계정으로 로그인 할 수있을뿐만 아니라 자신의 질문을 편집/주석 처리 할 수 ​​있습니다. – BalusC

답변

4

무엇입니까의 예외입니다, 그것은 커넥터-J의 JAR 파일이 제대로 클래스 경로에 배치되지 않은 것을 의미합니다.

실제로 Tomcat의 /lib 폴더에두면이 문제가 해결됩니다. 그러나 이미이 작업을 수행 한 것처럼 보인다고해서 올바른 JAR 파일을 전혀 넣지 않았거나 실제로 말하는 폴더가 잘못되었음을 의미 할 수 있습니다. Tomcat 6.0 이상인 경우에는 Tomcat 설치 폴더 내에 /lib 폴더가 있어야합니다 (이미 존재해야하며 사용자가 직접 만들어야합니다!). Tomcat 5.5 또는 그 이전 버전의 경우, Tomcat 설치 폴더 내에 /shared/lib 폴더 여야합니다 (다시, 이미 있어야합니다).

다른 대안은 웹 응용 프로그램의 /WEB-INF/lib 폴더에 JAR 파일을 저장하는 것입니다. 유일한 단점은 JAR 파일이 사용 된 웹 애플리케이션의 클래스 경로에서만 종료된다는 것입니다. 동일한 서블릿 컨테이너에있는 다른 모든 웹 애플리케이션의 경우 JAR 파일을 복제해야한다. 또한 연결 성능을 향상시키기 위해 Tomcat이 제공하는 연결 풀링 기능을 사용할 수 없습니다.


업데이트 : 당신의 스택 트레이스에 따라 :

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

클래스 이름이 잘못되었습니다. Java는 대소 문자를 구분합니다. com.mysql.jdbc.Driver이어야합니다.

관련 문제