packageapp.ticianne;importjava.io.PrintWriter;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.Statement;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.servlet.ServletConfig;importjavax.servlet.ServletException;importjavax.servlet.UnavailableException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassConectaextendsHttpServlet{privateConnectionconnection;privateStatementstatement;privateStringdriver="com.mysql.jdbc.Driver";privateStringdataBase="jdbc:mysql://localhost/testando";privateStringuser="root";privateStringpsswd="rootlar";publicvoidinit(ServletConfigconfig)throwsServletException{//configura a conexao ao bd e cria a instruçao sqltry{//tenta a conexao com o banco e cria instrucaoClass.forName(driver);connection=DriverManager.getConnection(dataBase,user,psswd);statement=connection.createStatement();}catch(Exceptione){e.printStackTrace();thrownewUnavailableException(e.getMessage());}}//processa a resposta da buscaprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{PrintWriterout=res.getWriter();out.println("<html><body><center><bold> Busca no banco de dados</bold></center>");Stringbusca;try{busca="SELECT * FROM tabela";ResultSetresposta=statement.executeQuery(busca);while(resposta.next()){out.println(resposta.getString(1));}resposta.close();out.println("</body></html>");out.close();}catch(SQLExceptione){e.printStackTrace();out.println("<title>Error</title>");out.println("</head>");out.println("<body><p>Database error occurred. ");out.println("Try again later.</p></body></html>");out.close();}}publicvoiddestroy(){// tenta fechar instruções e conexão do banco de dadostry{statement.close();connection.close();}// fim do try// trata exceções de banco de dados retornando um erro ao clientecatch(SQLExceptionsqlException){sqlException.printStackTrace();}// fim do catch}}
ola,
ja aconteceu isso comigo, dai eu baixei o netbeans só pra testar e consegui fazer com ele, mas acho que o eclipse faz isso tambem.
Eu fui no menu file->new java Servlet pelo assistente dai ele cria a servlet basica atraves de template e cadastra a mesma no web.xml automaticamente.
Dai é só tu alterar o arquivo da servlet com seu codigo…
Ticianne
e entao ?!?!?!
Acho que so me resta jogar o tomcat no lixo…
Ticianne
ta, vou tentar assim, junior
K
klebergf
Ticianne,
Olha o log do tomcat no console. Ele exibe o erro.
Foi assim que encontrei o erro naquele seu ultimo servlet.
Chama a aplicaçao no navegador, e olha o log no console, as vezes o erro nao e de configuraçao no web.xml etc… e sim de algo no seu proprio servlet que ele nao consegue exibir.
Aquele dia funcinou aqui com as alteraçoes que eu te passei.
V
vinnymaran
Olá !!
Intão ja me deparei com isso tb, a principio era erro do web.xml, referente a localização do servlet na estrutura de diretorio do projeto.
Da uma checada nisso.
até ++
Ticianne
Como faço no eclipse?? ele nao me deixa selecionar nada…
V
vinnymaran
Nao deixa , como ? ele exibe alguma msg ?
K
klebergf
Como? nao entendi a pergunta…
Leandro_BSB
Como está o server.xml?
Como você está chamando pelo browser?
[]s
Leandro
J
julianostr
Você está escrevendo o nome da classe conforme está descrito lá no xml? Pois Conecta é diferente de conecta…
Dê uma conferida nesses nomes.
legionarioba
Como é que você está tentando chamar essa servlet via aplicação? Qual url?
ja retirei a linha do web que o juliano falou. nada.
pelo log tambem nao descobri muita coisa…
mas tem uma linha que diz : WARNING: A docBase C:\Arquivos de programas\Apache Software Foundation\Tomcat 5.5\webapps\Conexao inside the host appBase has been specified, and will be ignored
e a linha de erro reclama de um projeto que eu apaguei do tomcat, e que num tem nada a ver com esse aqui…
Leandro_BSB
Seguem os passos para chamar o seu servlet:
Inclua a seguinte linha no arquivo server.xml que está na pasta conf do Tomcat:
Se quiser, pode substituir. Funcionou desta forma?
[]s
Leandro
Ticianne
nao, nao… nem assim nem substituindo
Leandro_BSB
Faça o seguinte teste:
Substitua o seu servlet pelo seguinte:
packageapp.ticianne;importjava.io.IOException;importjavax.servlet.ServletConfig;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassConectaextendsHttpServlet{publicvoidinit(ServletConfigconfig)throwsServletException{System.out.println("init");}// processa a resposta da buscaprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{System.out.println("doGet");}publicvoiddestroy(){System.out.println("destroy");}}
Pare o Tomcat.
Verifique, pelo menu Project do seu eclipse, se a opção Build Automatically está selecionada
Inicie o Tomcat
Verifique, no log, se há a seguinte mensagem: “init”:
Se houver esta mensagem, o servlet está corretamente mapeado. Se não, e se você tiver alterado os arquivos server.xml e web.xml conforme eu orientei, provavelmente a estrutura da sua aplicação não estará correta.
[]s
Leandro
pispico
O erro de pagina 404 ocorre também quando ao usar por exemplo o tomcat como Servlet container vc não coloca dentro da pasta lib o driver do mysql, pois caso dentro da sua classe você nao trate o erro ocorre o erro 404.
No meu caso funcinou, o driver que eu estava usando era o de mysql ( mysql-connector-java-5.1.7-bin ) e a minha IDE era o eclipse, O projeto era em JSP e Servlet.