Ola pessoal, sou novato em JSP e estou iniciando meu aprendizado e esta muito difícil para mim.
Estou tentando fazer uma conexão com o MySql e não consigo, esta aparecendo uma mensagem de erro “HTTp Status 500 -”
“description The server encountered an internal error () that prevented it from fulfilling this request.”
Não sei o que esta errado, já pesquisei a resposta nos tutoriais, não saio dai. Alguém tem uma luz?
Rodrigo, este é o código.
Comprei o livro JavaServer Pages Guia do desenvolvedor e este é o primeiro exemplo de conexão com banco. Já o revisei e não consegui encontrar o erro.
Instalei o SQLyog e com ele consegui rodar o selec sem problemas.
<%@page import=“java.sql.*”%>
<html>
<head>
<title>Obtaining a Connection</title>
</head>
<h1>This Page Obtains a Connection to a Database</h1>
<%
Connection conn = null;
ResultSet result = null;
Statement stmt = null;
ResultSetMetaData rsmd = null;
Bom, deve ter aparecido uma mensagem de erro gigante, nao?!.. no meio dessa mensagem estao a razao do problema… se nao aparece nada ( soh esse erro 500 ), entao va no diretorio “logs” do tomcat e veja nos arquivos de logs a mensagem de erro ( stack trace ).
É esta a saida de erro.
Achei que tratavam-se apenas de referências.
org.apache.jasper.JasperException
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:254)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:534)
root cause
java.lang.NullPointerException
at org.apache.jsp.jdbcConnection_jsp._jspService(jdbcConnection_jsp.java:73)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:210)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
at java.lang.Thread.run(Thread.java:534)
ou seja, voce tem algum objeto nao instanciado, e esta tendando fazer algo com ele. O problema eh que vc esta colocando varios try-catch, mas nao esta dando importancia para eles… por exemplo, voce tenta instanciar o driver do banco de dados… colocou dentro do try-catch e tudo mais, mas mesmo se der alguma exception, voce continua com o codigo logo abaixo, ao inves de parar por ai…
Entao pode ocorrer do JSP nao encontrar o driver do mysql, mas mesmo assim tentar abrir a conexao
Claro que isso foi soh um exemplo de situacao, eh mais provavel que o erro esteja em otro ponto, mas a ideia geral eh essa… Voce poderia colocar tudo dentro de um unico try-catch, ao inves de usar um para cada parte de codigo…
Rafael, eu estou na tentativa e erro.
Esta assim no livro.
Eu estou com muita dificuldade e se o livro que estou pesquisando não me ajuda, o aprendizado vai pro vinagre.
Vc tem algum código de conexão com o MySql que eu possa utilizar para começar?
Tem um tutorial aqui no GUJ sobre o assunto… de uma olhada la… no mais, usando o “Pesquisar” aqui do forum, voce pode encontrar vaaarias mensagens relacionadas…
Rafael, acredito que consegui encontrar o problema.
Alterei o código como segue e a conexão ocorreu com sucesso.
Ao meu ver o problema esta no driver de conexão com o MySql que não esta funcionando adequadamente.
Estou pesquisando a maneira correta de instalar o Connector/J e não encontrei um passo-a-passo e os artigos que estou lendo estão meio confusos. Alguém pode me ajudar?
try {
// Class c = Class.forName(“org.gjt.mm.mysql.Driver”);
Class c = Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
}
catch (Exception e) {
System.out.println(“ERRO ENCONTRADO " + e);
}
try {
// conn = DriverManager.getConnection(“jdbc:mysql://localhost:3306/ADDRESS”,“luciano”,“luciano”);
conn = DriverManager.getConnection(“jdbc:odbc:ADDRESS”, “”,”");
}
Pessoal,
consegui realizar a conexão. Estava instalando a versão 3.1.0-alpha e os erros estão acima descritos, baixei a versão 3.0.10-stable e tudo esta rodando bem.