pessoal, gostaria de pedir uma ajuda, pois não estou conseguindo fazer com que um Servlet conecte-se a um bd do PostGre.
Está apresentando o seguinte erro: description The server encountered an internal error () that prevented it from fulfilling this request.
coloquei o driver do postgre (postgresql-8.0-310.jdbc2) no seguinte diretório do tomcat: C:\jakarta-tomcat-5.5.7\webapps\ROOT\WEB-INF\lib e mesmo assim está dando erro.
obs: olhei várias msgs já postadas aqui no forum, mas não consegui resolver o problema.
pessoal, gostaria de pedir uma ajuda, pois não estou conseguindo fazer com que um Servlet conecte-se a um bd do PostGre.
Está apresentando o seguinte erro: description The server encountered an internal error () that prevented it from fulfilling this request.
coloquei o driver do postgre (postgresql-8.0-310.jdbc2) no seguinte diretório do tomcat: C:\jakarta-tomcat-5.5.7\webapps\ROOT\WEB-INF\lib e mesmo assim está dando erro.
obs: olhei várias msgs já postadas aqui no forum, mas não consegui resolver o problema.
desde já agradeço a ajuda.
Posta o stack trace ai, porque esse erro do Tomcat (“description The server encountered an internal error () that prevented it from fulfilling this request.”) pode ser 90347834 coisas diferentes…
C
carlosabc
cássio, este é um pequeno exercicio que fiz em um curso. segue abaixo o código fonte:
publicvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{Stringnum=req.getParameter("numero");intnumero;try{numero=Integer.parseInt(num);}catch(NumberFormatExceptione){numero=0;};ProdutoBeanbean=recuperaProduto(numero);RequestDispatcherdispatcher;if(bean!=null){req.setAttribute("produto",bean);dispatcher=req.getRequestDispatcher("/jsp/aluno01/exercicio15/exibeProduto.jsp");}else{dispatcher=req.getRequestDispatcher("/jsp/aluno01/exercicio15/produtoNaoEncontrado.jsp");}dispatcher.forward(req,res);//neste caso o parâmetro res não tem nada.}/*Este método corresponde à camada modelo do MVC*/publicProdutoBeanrecuperaProduto(intnumero)throwsServletException{try{PreparedStatementpstmt=conn.prepareStatement("SELECT NUMERO, DESCRICAO, PRECO, QTD_ESTOQUE FROM PRODUTOS WHERE NUMERO = ?");pstmt.setInt(1,numero);ResultSetrs=pstmt.executeQuery();ProdutoBeanbean=null;if(rs.next()){bean=newProdutoBean(rs.getInt("NUMERO"),rs.getString("DESCRICAO"),rs.getDouble("PRECO"),rs.getInt("QTD_ESTOQUE"));}pstmt.close();returnbean;}catch(SQLExceptionse){System.err.println("Erro ao acessar a tabela de Produtos.");thrownewServletException(se);}}publicvoiddestroy(){try{if(conn!=null)conn.close();}catch(SQLExceptionse){System.err.println("Erro ao fechar a conexão com o Banco de Dados.");}}
}
C
carlosabc
cássio, segue abaixo a página de erro completa. (sou novato em java)
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
A JVM não está encontrando a classe jsp.aluno01.exercicio15.RecuperaProdutoServlet
Isto é, verifique se esta servlet se encontra ok no projeto, que significa que ela deve estar dentro do /WEB-INF/classes/jsp/aluno01/exercicio15/RecuperaProdutoServlet
ou dentro de um jar que esteja na
/WEB-INF/lib
Flw,
Renan
C
carlosabc
Renan,
o servlet RecuperaProdutoServlet está (compilado ok) dentro de /WEB-INF/classes/jsp/aluno01/exercicio15/. Neste mesmo diretório se encontra o Javabean ProdutoBean (compilado ok).
Será que está faltando alguma configuração que eu não fiz ? Percebi que o jvm não está localizando o servlet, mas ele está lá e está ok.
Obs: Eu coloquei o driver do postgre (postgresql-8.0-310.jdbc2) no seguinte diretório do tomcat: C:\jakarta-tomcat-5.5.7\webapps\ROOT\WEB-INF\lib. É nesse diretório mesmo que fica o driver do postgre ?
agradeço a ajuda.
renandemelo
Cara,
Primeiramente não é no C:\jakarta-tomcat-5.5.7\webapps\ROOT\WEB-INF\lib. Caso você queira colocar uma biblioteca para todas as aplicações do seu tomcat teria que ser algo do tipo C:\jakarta-tomcat-5.5.7\lib. Agora, eu fortemente te aconselho a colocar os jars que não são padrão para o tomcat (neste caso, o driver do postgre) dentro do diretório /SuaAplicacao/WEB-INF/lib pois assim ela poderá ser implantada em qualquer servidor com tomcat. Verifique por que a jvm não está reconhecendo esta classe, pois que ela não está reconhecendo isto é claro, provavelmente é algum detalhe.
Flw,
Renan
C
carlosabc
Renan,
Agradeço a dica sobre o driver (e arquivos .jar) no tomcat. Vou olhar com mais calma e tentar identificar o pq de o jvm não está encontrando o servlet.