Problemas com Struts resolvido

7 respostas
K45T

opa bom dia pessoal

estou tentando aprender Struts com a apostilha da Caelum mais quando eu tento executar uma ação do Struts ele me retorna esse erro :

javax.servlet.ServletException: com.mysql.jdbc.Driver
	org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


root cause 

java.sql.SQLException: com.mysql.jdbc.Driver
	br.com.jdbc.ConnectonFatory.getConnection(ConnectonFatory.java:31)
	br.com.jdbc.ContatoDAO.<init>(ContatoDAO.java:34)
	br.com.struts.action.ListaContatosAction.execute(ListaContatosAction.java:31)
	org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
ond as linhas do root cause br.com.jdbc.ConnectonFatory.getConnection(ConnectonFatory.java:31) :
public static Connection getConnection()  throws SQLException {
        try {
        Class.forName( "com.mysql.jdbc.Driver");
        System.out.println( "Connectaded" );
        return DriverManager.getConnection("jdbc:mysql://localhost/java", "root", "kaspil" );  
        } catch ( ClassNotFoundException e ) {
            throw new SQLException( e.getMessage() );
        }
    }
e
public ContatoDAO() throws SQLException {
        this.connection = ConnectonFatory.getConnection();
    }
e o servlet que eu tento chamar
public ActionForward execute( ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse response ) throws Exception {
       
        // pesquisa no banco de dados a lista completa 
        
       List<Contato> lista = new ContatoDAO().getLista();

        request.setAttribute( "contatos", lista );
        
        // ok... para onde ir agora?
        return map.findForward( "lista" );
        
    }

Antes de tudo Obrigado pela atenção

7 Respostas

F

Fala brother vc colocou o jar do mysql no lib do seu projeto ou no lib do seu servidor de aplicacao ?
se vc colocar no servidor de aplicacao exemplo tomcat ou jboss, todos os projetos visualizam, se colocar no do projeto fica apenas para ele saco?

pega a api do mysql-connector e refaz o teste

Att

K45T

amigo muito obrigado pela deica acho que funcionou mais agora não esta aparecendo nada porque será ?

eu sou meu burro falante sabe !!!

hehe

furutani

Olá

K45T:
amigo muito obrigado pela deica acho que funcionou mais agora não esta aparecendo nada porque será ?

eu sou meu burro falante sabe !!!

hehe

List<Contato> lista = new ContatoDAO().getLista();

O trecho acima retornar algo?

K45T

desculpa eu ja corigi o espaço que estava faltando agora esta assim...

List<Contato> lista = newContatoDAO().getLista();

o met get list é esse.

public List getLista() throws SQLException {
        
        PreparedStatement stmt = this.connection.prepareStatement( "select * from contato");
        
        ResultSet rs = stmt.executeQuery();
        
        List contatos = new ArrayList();
        
        while ( rs.next() ) {
            // criando o objeto Contato
            Contato contato = new Contato();
            contato.setNome( rs.getString( "nome" ) );
            contato.setEmail( rs.getString( "email" ) );
            contato.setEndereco( rs.getString( "endereco" ) );
            
            // adiciona o objeto à lista
            contatos.add( contato );
        }
        
        rs.close();
        stmt.close();
        
        return contatos;
    }

obrigado gante...

K45T

galera bom demais andei olhando meus arquivos e tipo achei agumas garfes no struts.xml

mais agora estou com outro erro o que vcs acham ?

desde já muito agradescido pela ajuda espero poder retribuir...

o erro é esse:

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: Exception in JSP: /lista.jsp:25

22:     <h1>Resultado</h1>
23:     
24:     <c:forEach var="contato" items="${contatos}" >
25:         ${contato.id} 
26:         - 
27:         ${contato.nome} 
28:         <br/>


Stacktrace:
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:504)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:375)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


root cause 

javax.servlet.ServletException: Unable to find a value for "id" in object of class "br.com.jdbc.modelo.Contato" using operator "."
	org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:858)
	org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:791)
	org.apache.jsp.lista_jsp._jspService(lista_jsp.java:88)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


root cause 

javax.servlet.jsp.el.ELException: Unable to find a value for "id" in object of class "br.com.jdbc.modelo.Contato" using operator "."
	org.apache.commons.el.Logger.logError(Logger.java:481)
	org.apache.commons.el.Logger.logError(Logger.java:498)
	org.apache.commons.el.Logger.logError(Logger.java:611)
	org.apache.commons.el.ArraySuffix.evaluate(ArraySuffix.java:340)
	org.apache.commons.el.ComplexValue.evaluate(ComplexValue.java:145)
	org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
	org.apache.commons.el.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:190)
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:932)
	org.apache.jsp.lista_jsp._jspx_meth_c_forEach_0(lista_jsp.java:112)
	org.apache.jsp.lista_jsp._jspService(lista_jsp.java:72)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	com.sun.faces.context.ExternalContextImpl.dispatch(ExternalContextImpl.java:322)
	com.sun.faces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:130)
	com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:87)
	com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:200)
	com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:117)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:198)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)
	org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1085)
	org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:263)
	org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:398)
	org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:318)
	org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:241)
	org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:368)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.17 logs.

muito obrigado qualquer coisa estou aqui...

marciocamurati

Então no erro está dizendo:


javax.servlet.ServletException: Unable to find a value for “id” in object of class “br.com.jdbc.modelo.Contato” using

Existe esse atributo id ? Talvez o o getter não exista ?

[]s

K45T

obrigada galera 10

Criado 14 de setembro de 2007
Ultima resposta 17 de set. de 2007
Respostas 7
Participantes 4