Oi…
alguem poderia me ajudar,
eu tenho esse requestDispatcher
q esta dando erro ao dispachar pra pagina, apos ter feito a ação
alguem pode dar uma dica?
public class IncluiCidadeAction implements BusinessLogic {
publicvoidexecute(HttpServletRequestreq,HttpServletResponseres)throwsException{System.out.println("Executando a logica e redirecionando...");CidadeVOcidade=newCidadeVO();cidade.setNome(req.getParameter("nome"));cidade.setDdd(req.getParameter("ddd"));cidade.setUf(req.getParameter("uf"));try{CidadeDAOdao=newCidadeDAO();dao.adiciona(cidade);}catch(SQLExceptione){thrownewServletException(e);}RequestDispatcherrd=req.getRequestDispatcher("/cidade-ok.jsp");rd.forward(req,res);}
27/11/2007 22:12:24 org.apache.catalina.storeconfig.StoreLoader load
INFO: Find registry server-registry.xml at classpath resource
27/11/2007 22:12:24 org.apache.catalina.startup.Catalina start
INFO: Server startup in 2328 ms
Executando a logica e redirecionando...
conectado ao banco
27/11/2007 22:12:41 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet ControllerServlet threw exception
java.lang.IllegalStateException: Cannot forward after response has been committed
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:313)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at br.com.supremacia.controller.IncluiCidadeAction.execute(IncluiCidadeAction.java:30)
at br.com.supremacia.controller.ControllerServlet.service(ControllerServlet.java:35)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
Hermanitto
ta ae o codigo de erro q aparece no meu CONSOLE
furutani
Olá
Acho que você alterou algo no response antes de dar forward.
Tenha certeza que o parametro HttpServletResponse res não é compartilhado com nenhuma outra instância de um objeto BussinessLogic.
Hermanitto
tow axando, q pode ser pq eu passo um HIDDEN no POST do meu form html
será q pode ser isso?
Hermanitto
<%@pagelanguage="java"contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"><title>Insert title here</title></head><body>
digite os dados:
<formaction="controller"method="POST">
Cidade: <inputtype="text"name="nome"/><br/>
DDD: <inputtype="text"name="ddd"/><br/>
UF: <inputtype="text"name="uf"/><br/><inputtype="hidden"name="business"value="IncluiCidadeAction"/><br/><inputtype="submit"value="Enviar"/></form></body></html>
Hermanitto
Esse e o meu Controlador
packagebr.com.supremacia.controller;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;publicclassControllerServletextendsHttpServlet{@Overrideprotectedvoidservice(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException{// TODO Auto-generated method stubsuper.service(req,res);StringbusinessLogicClassName="br.com.supremacia.controller."+req.getParameter("business");ClassbusinessLogicClass=null;try{businessLogicClass=Class.forName(businessLogicClassName);}catch(ClassNotFoundExceptione){thrownewServletException("Não encontro a classe"+businessLogicClassName);}if(!BusinessLogic.class.isAssignableFrom(businessLogicClass)){thrownewServletException("classe não implementa a interface: "+businessLogicClassName);}BusinessLogicbusinessLogicObject=null;try{businessLogicObject=(BusinessLogic)businessLogicClass.newInstance();}catch(InstantiationExceptione){thrownewServletException(e);}catch(IllegalAccessExceptione){thrownewServletException(e);}try{businessLogicObject.execute(req,res);}catch(Exceptione){thrownewServletException("A lógica de negócios causou uma exceção",e);}}}
furutani
Tenta rodar sem essa linha
super.service(req, res);
Hermanitto
Caraaaaaa…
mtoooo obrigadooooo
funcionou, foi soh tirar essa linha…
eh pq ele tava construindo o Servlet, e nessa hora ele gravava no Response ne?
legal
valeu…
te mais
furutani
Hermanitto:
Caraaaaaa…
mtoooo obrigadooooo
funcionou, foi soh tirar essa linha…
eh pq ele tava construindo o Servlet, e nessa hora ele gravava no Response ne?