Dúvidas e problemas com combo do struts

saudações!

estou tentando fazer uma pequena aplicação com struts e hibernate. E estou com preblemas para fazer um combo do struts.

Montagem do struts:

        <html:form action="/AddLicenca">
                <html:select name="AddLicenca" property="ComputadorCodigo">
                    <html:optionsCollection property="Computadores"/>
                </html:select>
        </html:form>

ActionForm:

public class AddLicenca extends org.apache.struts.action.ActionForm {
    private String ComputadorCodigo;
    private Collection Computadores;
    public Collection getComputadores() {
        return Computadores;
    }
    public void setComputadores(Collection Computadores) {
        this.Computadores = Computadores;
    }
    public String getComputadorCodigo() {
        return ComputadorCodigo;
    }
    public void setComputadorCodigo(String ComputadorCodigo) {
        this.ComputadorCodigo = ComputadorCodigo;
    }
    public List Computadores() {
        ComputadorDAO computadorDAO = new ComputadorDAO();
        return computadorDAO.list("from computador order by codigo");
    }
    public AddLicenca() {
        super();
    }
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        return errors;
    }
}

Se precisar de mais alguma coisa, eu passo.

O erro que exibido é:

Alguém saberia a causa desse erro e algum tutorial de como usar combo do struts com hibernate?

até mais gelera!

Cara não sei se vc já resolveu o problema mas nas sua página jsp ao invés de chamar ComputadorCodigo chame por computadorCodigo, com letra minúscula na primeira posição, a mesma coisa para propriedade computadores…
Em relação aos tutoriais da uma olhadinha no google ou uma pesquisada aqui no fórum mesmo…vc vai achar muita coisa…

sua dica funcionou! muito obrigado!!!

porém agora veio outro erro:

alguma idéia?

Faz o seguinte cara…Poste a stack trace completa do erro…

a stack trace completa

[quote]type Exception report

message

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

exception

org.apache.jasper.JasperException: javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception thrown by getter for property computadores of bean org.apache.struts.taglib.html.BEAN
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:522)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Exception thrown by getter for property computadores of bean org.apache.struts.taglib.html.BEAN
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.licencas_jsp._jspService(licencas_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

javax.servlet.jsp.JspException: Exception thrown by getter for property computadores of bean org.apache.struts.taglib.html.BEAN
org.apache.struts.taglib.TagUtils.lookup(TagUtils.java:897)
org.apache.struts.taglib.html.OptionsCollectionTag.doStartTag(OptionsCollectionTag.java:177)
org.apache.jsp.licencas_jsp._jspx_meth_html_005foptionsCollection_005f0(licencas_jsp.java:195)
org.apache.jsp.licencas_jsp._jspx_meth_html_005fselect_005f0(licencas_jsp.java:165)
org.apache.jsp.licencas_jsp._jspx_meth_html_005fform_005f0(licencas_jsp.java:117)
org.apache.jsp.licencas_jsp._jspService(licencas_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.[/quote]

Então cara, provavelmente seu erro está dentro desse método list do seu ComputadorDAO:

   computadorDAO.list("from computador order by codigo");  

Como você está acessando sua base de dados?? Está utilizando Hibernate ou JPA ??
Poste essa classe ComputadorDAO tbm…

estou usando hibernate

o DAO:

[code]public class ComputadorDAO {

private SessionFactory factory;
private Session session;

public ComputadorDAO() {
    this.factory = HibernateUtil.getSessionFactory();
    this.session = factory.openSession();
}

public void insert(Computador computador) {
    Transaction transaction = session.beginTransaction();
    session.save(computador);
    transaction.commit();
}

public void delete(Computador computador) {
    Transaction transaction = session.beginTransaction();
    session.delete(computador);
    transaction.commit();
}

public void update(Computador computador) {
    Transaction transaction = session.beginTransaction();
    session.update(computador);
    transaction.commit();
}

public List list(String condicao) {
    List computadores = session.createQuery(condicao).list();
    return computadores;
}

public Collection getCollection(String condicao) {
    Collection computadores = session.createQuery(condicao).list();
    return computadores;
}

@Override
protected void finalize() throws Throwable {
    super.finalize();
    session.flush();
    session.close();
}

}[/code]

Tenta fazer um teste assim:

1 - Coloca um try / catch dentro do seu método list
2 - Depois debuge o código para ver se esta exceção não levantou lá…

A exceção é levantada no método list…

qual seria o problema?

[quote=breno500as]Tenta fazer um teste assim:

1 - Coloca um try / catch dentro do seu método list
2 - Depois debuge o código para ver se esta exceção não levantou lá…[/quote]

Fiz algumas correções, e agora o erro é:

[quote]type Exception report

message

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

exception

org.apache.jasper.JasperException: An exception occurred processing JSP page /licencas.jsp at line 28

25:


26:

Computador


27: <html:select name=“AddLicenca” property=“computadorCodigo”>
28: <html:optionsCollection property=“computadores” value=“ComputadorId” label=“Codigo”/>
29: </html:select>
30:
31:

Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:505)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:398)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

javax.servlet.ServletException: javax.servlet.jsp.JspException: Failed to obtain specified collection
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:852)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:781)
org.apache.jsp.licencas_jsp._jspService(licencas_jsp.java:90)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)

root cause

javax.servlet.jsp.JspException: Failed to obtain specified collection
org.apache.struts.taglib.html.OptionsCollectionTag.doStartTag(OptionsCollectionTag.java:181)
org.apache.jsp.licencas_jsp._jspx_meth_html_005foptionsCollection_005f0(licencas_jsp.java:199)
org.apache.jsp.licencas_jsp._jspx_meth_html_005fselect_005f0(licencas_jsp.java:165)
org.apache.jsp.licencas_jsp._jspx_meth_html_005fform_005f0(licencas_jsp.java:117)
org.apache.jsp.licencas_jsp._jspService(licencas_jsp.java:80)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)[/quote]