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…
Solfier
Janeiro 11, 2010, 2:09pm
#3
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…
Solfier
Janeiro 11, 2010, 3:15pm
#5
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…
Solfier
Janeiro 11, 2010, 3:24pm
#7
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á…
Solfier
Janeiro 18, 2010, 10:34am
#9
A exceção é levantada no método list…
qual seria o problema?
Solfier
Janeiro 18, 2010, 12:20pm
#10
[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]