Java.lang.NoSuchFieldError: deferredExpression - socorro!

Olá pessoal! :slight_smile:

Estou com um problema que, já há alguns meses (!!!), está me tirando o sono. Tenho um sistema rodando num servidor com JBoss 4.2.3, usando Java SE 5 e EE 5. Quado estou utilizando o sistema ele gera o erro “java.lang.NoSuchFieldError: deferredExpression” aleatoriamente, ou seja, acontece em páginas onde não ocorria antes. Aí se vou no Linux e dou um touch na WAR, volta ao normal, mas depois aparece o erro em outra página.

Ok, alguns de vocês devem estar pensando: “ah, isso acontece porque tem duas versões do jstl.jar, uma na aplicação e outra no server”. Mas acontece que se tiro de um lugar e deixo só no outro, todas as minhas JSPs que usam EL deixam de funcionar.

Já tenho um bom tempo de estrada com Java, mas não consigo resolver isso! :oops: Vocês poderiam me ajudar, por favor??

Aí vai parte do stack trace:

java.lang.NoSuchFieldError: deferredExpression
at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178)
at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:146)
at org.apache.jsp.pages.treinamentos.view_005fcadTreinamentos_jsp._jspDestroy(view_005fcadTreinamentos_jsp.java:48)
at org.apache.jasper.runtime.HttpJspBase.destroy(HttpJspBase.java:88)
at org.apache.jasper.servlet.JspServletWrapper.destroy(JspServletWrapper.java:404)
at org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:144)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
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.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301)
at detep.faraoh.servlet.TreinamentoServlet.exibirTreinamento(TreinamentoServlet.java:386)
at detep.faraoh.servlet.TreinamentoServlet.doPost(TreinamentoServlet.java:79)
at detep.faraoh.servlet.TreinamentoServlet.doGet(TreinamentoServlet.java:41)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
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.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)

Obrigado!

Provavelmente, como vc mesmo citou, deve ter duas versões do jar jstl no seu classpath. Eu já passei por este problema tbm.
Eu tinha uns 3 jstl jar´s, por isso existia esse conflito. Eu deixei só o jstl-api-1.2 e o jstl-impl.

Creio que seja este o problema. Espero ter ajudado.
[]´s