2016-01-29 2 views
0

Я успешно подключаю простое Java-приложение, которое распечатывает все данные, объявляя его соответствующим и импортируя файл jar-файла соединителя MySQL в проект. Однако проблема заключается в том, когда я хочу подключиться к MySQL через веб-приложение (glassfish). Я импортировал jar-файл соединителя MySQL и объявил его соответствующим образом, но я не понимаю, почему драйвер не найден.Неизвестная проблема с MySQL Драйвер не найден

Ниже ошибка, что я получаю:

2016 - 01 - 29T16: 22: 25.873 + 0000 | Info: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver 
 
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1783) 
 
at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java: 1633) 
 
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java: 187) 
 
at org.apache.jasper.servlet.JasperLoader.loadClass(JasperLoader.java: 125) 
 
at java.lang.Class.forName0(Native Method) 
 
at java.lang.Class.forName(Class.java: 264) 
 
at org.apache.jsp.validate_jsp._jspService(validate_jsp.java: 56) 
 
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java: 111) 
 
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 790) 
 
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java: 411) 
 
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 473) 
 
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java: 377) 
 
at javax.servlet.http.HttpServlet.service(HttpServlet.java: 790) 
 
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java: 1682) 
 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 318) 
 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 160) 
 
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java: 734) 
 
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: 673) 
 
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java: 99) 
 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java: 174) 
 
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java: 416) 
 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java: 283) 
 
at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java: 459) 
 
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java: 167) 
 
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java: 206) 
 
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java: 180) 
 
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java: 235) 
 
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java: 119) 
 
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java: 283) 
 
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java: 200) 
 
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java: 132) 
 
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java: 111) 
 
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java: 77) 
 
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java: 536) 
 
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java: 112) 
 
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java: 117) 
 
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java: 56) 
 
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java: 137) 
 
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java: 591) 
 
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java: 571) 
 
at java.lang.Thread.run(Thread.java: 745)

Validate.jsp

<% @page language = "java" 
 
contentType = "text/html; charset=ISO-8859-1" 
 
pageEncoding = "ISO-8859-1" %> 
 
    < !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
 
"http://www.w3.org/TR/html4/loose.dtd" > 
 
<% @page import = "java.sql.*" %> 
 
    <% 
 
    try { 
 
    String username = request.getParameter("username"); 
 
    String password = request.getParameter("password"); 
 
    String driver = ("com.mysql.jdbc.Driver"); 
 
    Class.forName(driver); // MySQL database connection 
 
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/ebooking" + "user=user&password=user"); 
 
    PreparedStatement pst = conn.prepareStatement("Select * from student where stu_username=? and stu_password=?"); 
 
    pst.setString(1, username); 
 
    pst.setString(2, password); 
 
    ResultSet rs = pst.executeQuery(); 
 
    if (rs.next()) 
 
     out.println("Valid login credentials"); 
 
    else 
 
     out.println("Invalid login credentials"); 
 
    } catch (Exception e) { 
 
    System.out.println(e); 
 
    out.println("Something went wrong !! Please try again"); 
 
} %>

+0

Поместите свой 'mysql-jdbc-connector.jar' под папку lib в tomcat. – STaefi

+0

@STaefi Я не usinfg tomcat. Я использую старую рыбку. – user4591082

+0

У Ok glassfish есть папка с lib тоже. Все классы и файлы jar там загружаются при запуске сервера. 'GLASSFISH_HOME_DIR/glassfish/lib' – STaefi

ответ

0

убедитесь, что вы добавить ред файл mysql library в библиотеку

также

добавить ? перед тем пользователем

изменение:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/ebooking" + "user=user&password=user"); 

в

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/ebooking" + "?user=user&password=user"); 
+0

Я по-прежнему получаю ту же ошибку. – user4591082

0

Любой апи вызов JDBC требует подходящий драйвер JDBC поддерживается базовой базой данных.

Пожалуйста, проверьте ваше приложение WAR, чтобы оно имело драйвер jdbc базы данных MYSQL.

ClassNotFoundException будет происходить, если банку не загружена в ваш загрузчик классов из виртуальной машины Java

0

Я думаю, что у вас есть проблема с методом GetConnection. Этот метод ждет три аргумента.

import java.sql.Connection; 
import java.sql.DriverManager; 

public class JavaConnect { 
    public static void ImportDriver() { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
     } 
     catch(ClassNotFoundException ex) { 
      ex.printStackTrace(); 
     } 
    } 

    public static Connection ConnectDB() { 
     Connection connection = null; 
     String url = "jdbc:mysql://localhost/ebooking"; 
     try { 
      connection = DriverManager.getConnection(url, "user", "user"); 
      return connection; 
     } 
      catch(Exception ex) { 
      ex.printStackTrace(); 
      System.out.println("Please try again !"); 
     } 

     return connection; 
    } 
} 

Я надеюсь, что это поможет! Хорошего дня !

+0

Хорошо, я вижу, но как бы реализовать это, поскольку все мои работы находятся в jsp? – user4591082

+0

Посмотрите этот пост, если вы все еще не нашли http://stackoverflow.com/questions/13505833/connecting-mysql-from-jsp – Mirouf

0

Попытка написать строку подключения, добавив, может быть, и portebooking? вместо ebooking так:

Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:8080/ebooking?" + 
           "user=user&password=user"); 

И не forgit добавить доступны jdbc driver.

Смежные вопросы