Estou usando vraptor 3.4.1, JSTL 1.2.1 ,Tomcat 7.0.27, e quando vou renderizar uma jsp me aparece um erro de conversão : javax.el.ELException: Cannot convert P of type class java.lang.String to class java.lang.Long , quando eu removo as partes do codigo que eu faço comparação,tudo fica normal,mas eu preciso realizar essas comparações. Talves nem seja o vraptor,mas não entendo o prq desse erro aparecer,já testei com varias versões do tomcat e o erro persiste,no glassfish esse erro não acontece mas prefiro o tomcat para desenvolvimento.
Erro que aparece no console:
[color=red]
Mai 10, 2012 8:53:58 AM org.apache.catalina.core.ApplicationDispatcher invoke
Grave: Servlet.service() for servlet jsp threw exception
javax.el.ELException: Cannot convert P of type class java.lang.String to class java.lang.Long
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:304)
at org.apache.el.lang.ELSupport.coerceToNumber(ELSupport.java:283)
at org.apache.el.lang.ELSupport.equals(ELSupport.java:144)
at org.apache.el.parser.AstEqual.getValue(AstEqual.java:40)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:189)
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:985)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspx_meth_c_005fwhen_005f0(historicoFinanceiro_jsp.java:442)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspx_meth_c_005fchoose_005f0(historicoFinanceiro_jsp.java:384)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspx_meth_c_005fforEach_005f0(historicoFinanceiro_jsp.java:231)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp.access$4(historicoFinanceiro_jsp.java:187)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp$Helper.invoke2(historicoFinanceiro_jsp.java:737)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp$Helper.invoke(historicoFinanceiro_jsp.java:767)
at org.apache.tiles.jsp.context.JspUtil.evaluateFragmentAsString(JspUtil.java:297)
at org.apache.tiles.jsp.taglib.PutAttributeTag.doTag(PutAttributeTag.java:256)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspx_meth_tiles_005fputAttribute_005f1(historicoFinanceiro_jsp.java:144)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp.access$1(historicoFinanceiro_jsp.java:132)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp$Helper.invoke0(historicoFinanceiro_jsp.java:696)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp$Helper.invoke(historicoFinanceiro_jsp.java:761)
at org.apache.tiles.jsp.context.JspUtil.evaluateFragment(JspUtil.java:279)
at org.apache.tiles.jsp.taglib.InsertTemplateTag.doTag(InsertTemplateTag.java:254)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspx_meth_tiles_005finsertTemplate_005f0(historicoFinanceiro_jsp.java:110)
at org.apache.jsp.WEB_002dINF.jsp.financeiro.historicoFinanceiro_jsp._jspService(historicoFinanceiro_jsp.java:85)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:69)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:79)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:684)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:471)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:402)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:329)
at br.com.caelum.vraptor.view.DefaultPageResult.defaultView(DefaultPageResult.java:67)
at br.com.caelum.vraptor.interceptor.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:60)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:85)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.newtecnologia.wds.interceptor.AutenticacaoInterceptor.intercept(AutenticacaoInterceptor.java:63)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:48)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:83)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:71)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:61)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:69)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Mai 10, 2012 8:53:59 AM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet [default] in context with path [/WDSCliente] threw exception
br.com.caelum.vraptor.validator.ValidationException
[/color]
Codigo que é chamado no controller:
@Restrito
@Path("/historicoFinanceiro")
public void historicoFinanceiro() throws Exception{
FinanceiroDAO financeiroDAO = FabricaDAO.getFinanceiroDAO(FabricaDAO.TIPO_JDBC);
((FinanceiroJDBCDAO) financeiroDAO).setConnection(this.connection);
Agente agente = this.agenteSession.getAgente();
List<Boleto> historico = financeiroDAO.getHistoricoFinanceiro(agente);
this.result.include("boletos", historico);
}
Codigo da JSP:
<%@ page language ="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix ="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<tiles:insertTemplate template="/WEB-INF/jsp/template.jsp">
<tiles:putAttribute name="scripts"> </tiles:putAttribute>
<tiles:putAttribute name="body">
<div id="content" class="box">
<h2 class="page-title">
Financeiro Histórico</h2>
<div class="breadcrumb">
<a href="<c:url value="/principal/index"/>" id="home">Home</a> » <a href="<c:url value="/historicoFinanceiro"/>">Financeiro Histórico</a></div>
<table class="historico">
<thead>
<tr>
<td>Código</td>
<td>Vencimento</td>
<td>Pagamento</td>
<td>Valor R$</td>
<td>Multas/Juros</td>
<td>Total</td>
<td>Status</td>
</tr>
</thead>
<tbody>
<c:forEach items="${ boletos }" var="boleto">
<tr>
<td>${ boleto.codigo }</td>
<td><fmt:formatDate value="${ boleto.vencimento }" pattern="dd/MM/yyyy" type="date"/></td>
<td><fmt:formatDate value="${ boleto.dataConfirmacao }" pattern="dd/MM/yyyy" type="date"/></td>
<td><fmt:formatNumber value="${ boleto.valor}" currencySymbol="" type="currency"/></td>
<td><fmt:formatNumber value="${ boleto.valorApurado - boleto.valor }" currencySymbol="" type="currency"/></td>
<td><fmt:formatNumber value="${ boleto.valorApurado }" currencySymbol="" type="currency"/></td>
<td>
<c:choose>
<c:when test="${ boleto.status == 'P' }">Pendente</c:when>
<c:when test="${ boleto.status == 'C' }">Confirmado</c:when>
<c:when test="${ boleto.status == 'R' }">Renegociado</c:when>
</c:choose>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
<div class="clear">
</div>
</tiles:putAttribute>
</tiles:insertTemplate>
E o model :
public class Boleto {
private Long codigo;
private Double valor;
private Date vencimento;
private Date dataConfirmacao;
/**
* Informar se a parcela foi paga ou não
*
* P = Pendente
* C = Confirmado
* R = Renegociado
*
**/
private Character status;
.
.
.