Dynamic web project, problemas com conector mysql

4 respostas
W

Pessoal, criei um Dynamic web project no Eclipse wtp, criei várias classes, inclusive de conexão e manipulação de banco de dados. Todas elas funcionam normalmente, porém, quando chamo uma tela via browser (login.jsp) esta chama outra(verificarlogin.jsp). No código é chamado o método para verificar o login digitado na tela com o gravado no banco de dados.
Dá o erro que está no final do tópico. Mas já explico que este mesmo método funciona quando o chamo por uma outra classe, ou seja, quando o método não é chamado pelo jsp.

Na outra partição da minha máquina eu uso o oracle e não ocorre esse erro e o properties do Dynamic web project está assim:

Java build path–>libraries–>
Apache Tomcat 5.5
JRE System Library [jre1.0.6_03]
Web App Libraries–>
Access rules:No rules defined
Native library location: (None)
[color=red]ojdbc14.jar - ProjetoWeb/WebContent/… [/color]

E na partição em que uso o mysql está assim:

Java build path–>libraries–>
[color=red]mysql-connector-java-5.1.5-bin.jar - C\mysql-connector… [/color]
Apache Tomcat v6.0
EAR Libraries
JRE System Library [jre1.0.6_03]
Web App Libraries–>
Access rules:No rules defined
Native library location: (None)

Reparem que onde tem o mysql a biblioteca Web App Libraries não tem o conector, mas tem o conector logo acima
E onde tem o oracle, o conector está em Web App Libraries, não sei se tem algo a ver.
No windows xp home eu uso o mysql
No windows xp professional eu uso o oracle
Bom, desculpem o texto tão grande, mas tentei deixar bem detalhado como está configurado pra ver se alguém consegue entender e ajudar. Valeu galera.

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: java.sql.SQLException: com.mysql.jdbc.Driver

org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:541)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:417)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

javax.servlet.ServletException: java.sql.SQLException: com.mysql.jdbc.Driver

org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:850)

org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:779)

org.apache.jsp.verificarlogin_jsp._jspService(verificarlogin_jsp.java:84)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

root cause

java.sql.SQLException: com.mysql.jdbc.Driver

classesjava.ConnectionFactory.getConnection(ConnectionFactory.java:15)

dao.UsuariosDao.<init>(UsuariosDao.java:17)

org.apache.jsp.verificarlogin_jsp._jspService(verificarlogin_jsp.java:66)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)

javax.servlet.http.HttpServlet.service(HttpServlet.java:803)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.14 logs.

4 Respostas

E

por curiosidade…

por um acaso você está utilizando pool de conexões?

[]'s

W

Não, estou usando a classe abaixo.

public class ConnectionFactory{ public static Connection getConnection() throws SQLException{ try{ Class.forName("com.mysql.jdbc.Driver "); System.out.println("Conectado ao banco"); return DriverManager.getConnection("jdbc:mysql://localhost:port3306/database", "xxx","yyy"); }catch(ClassNotFoundException e){ throw new SQLException(e.getMessage()); } } }

J

hehehe veja só

catch(ClassNotFoundException e){ throw new SQLException(e.getMessage()); }

Tip: Está ocorrendo uma exceção de ClassNotFoundException, contudo você está subindo com outra exceção ao invés de tratar a que acabou de ocorrer. Se num nível acima você não tratar a SQLException, você vai ser perder com as exceptions e não vai saber mais o que está acontecendo…

Quanto ao seu problema, o JAR do MySQL Connector certamente não está no WEB-INF/lib do seu projeto

W

Hummm, então teria que ter lançado uma "ClassNotFoundException" ? Não entendi porque
Mas funciona quando executo através de outras classes, desde que não seja via jsp.
Quanto ao conector que vc mencionou, ele está sim no WEB-INF/LIB–>mysql-connector-java-5.1.5-bin.jar

Como que eu modifico isso? Essa classe de conexão eu copiei da apostila da Caelum. Valeu.

Criado 19 de fevereiro de 2008
Ultima resposta 20 de fev. de 2008
Respostas 4
Participantes 3