Estou iniciando em servlets e jsp e estou tentando executar um delete em um cadastro de usuario.
O que eu fiz de errado nesse código?
O programa funciona da seguinte forma:
Tenho um jsp onde eu passo o valor do id do usuario para um servlet.
O servlet recebe o id, localiza o usuario no banco de dados e chama o codigo abaixo para remover o usuario.
O problema e que me retorna esta mensagem: “org.postgresql.util.PSQLException: Um erro de E/S ocorreu ao enviar para o processo servidor”
Alguem poderia me explicar o que esta errado ?
Desde ja agradeço.
publicvoidremover(Usuariousuario)throwsException{PreparedStatementps=null;Connectionconn=null;if(usuario==null)thrownewException("O valor passado não pode ser nulo");try{Stringsql="delete from usuario where id =?";conn=this.conn;ps=conn.prepareStatement(sql);ps.setInt(1,usuario.getId());ps.executeUpdate();}catch(SQLExceptionsqle){thrownewException("Erro ao excluir dados DAO: "+sqle);}finally{AccessDb.closeConnection(conn,ps);}}
Eu já fiz um programa onde deletava um usuário do banco e gerava a exceção do mesmo jeito.
Mas aí era usuário do banco.
K
kasoharo
O usuario não é excluido.
Segue a exceção.
org.postgresql.util.PSQLException: Um erro de E/S ocorreu ao enviar para o processo servidor.
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:218)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:451)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:350)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statement.java:304)
at com.fhssystem.dao.UsuarioDAO.remover(UsuarioDAO.java:120)
at com.fhssystem.servlet.svlUsuarioDel.doGet(svlUsuarioDel.java:21)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Stream closed
at sun.nio.cs.StreamEncoder.ensureOpen(StreamEncoder.java:26)
at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:121)
at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:212)
at org.postgresql.core.PGStream.flush(PGStream.java:507)
at org.postgresql.core.v3.QueryExecutorImpl.sendSync(QueryExecutorImpl.java:676)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
… 22 more
leohunther
Damn it!!!
Tenta sem PreparedStatement só pra ver no que vai dar.
Ou tenta escrever o sql todo na String sql.
tipo:
"delete from usuario where id=1"
e executa pra ver o que vai dar.
berg.pb
Eu não vi aí vc criar a conexão.
No ínicio, vc diz q o objeto da conexão é ‘conn=null’
Dentro do try, vc coloca ‘conn=this.conn’. Mas se a conexão é nula, tudo é nulo.
Tenta conectar primeiro.
mrapha
Obrigado berg.pb!!! Sua solução resolveu o meu problema igual ao do moço aí emcima!!
Muito obrigado!!