VRaptor 3 e Tomcat 5.5

Olá senhores,

Tenho uma aplicação com VRaptor3 (criada a partir do vraptor3-blank) que roda perfeitamente bem no Tomcat 6.x. Contudo, tive que usar o Tomcat 5.5 por motivos de força maior. A partir daí não consigo mais acessar as páginas da aplicação.

A exceção parece estar relacionada ao JSTL (talvez a versão), já que em qualquer página que eu esteja utilizando as tags (c:set por exemplo) ocorre o erro. Mas ainda estou pesquisando sobre o problema no Google.
Segue a exceção abaixo:

br.com.caelum.vraptor.view.ResultException: javax.servlet.ServletException: javax/el/ELException br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69) br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:65) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:77) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42) br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:80) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56) br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65) br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70) br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92) br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56) br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)

Qualquer ajuda ou dica é bem vinda!
Um abraço.

Oi,

Consegui resolver o problema acima. E realmente tinha a ver com a versão da JSTL.

Os dois passos abaixo foram necessários para resolver o problema:

  1. Tive que fazer downgrade para a versão 1.1 da JSTL;
  2. E acertar o cabeçalho do web.xml para versão 2.4;

Enfim, caso alguém passe por este mesmo problema fica aqui a dica (-:
Abraços.

Valeu Rafael!

Esse problema tambem acontece com o jetty, ai devemos colocar a jstl la!

To usando a versão 3.2 do vraptor,
Fiz a alteração mas não consegui rodar minha aplicação, lançando o mesmo erro

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: javax/el/ValueExpression
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:53)

Meu web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
...
</web-app>

Fiz o downgrade para jstl-1_1-mr2-api.jar

Uso na minha jsp as seguintes:

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

O que mais posso fazer?

remova os jars jstl*.jar do seu WEB-INF/lib. No tomcat eles não são necessários

Lucas,

Retirei mas agora o erro é o seguinte. Não tenho mais nenhum jar jstl na minha lib.

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: javax/servlet/jsp/jstl/core/Config
br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)

Vi que apartir da versão 2.4 é necessário que as taglibs fiquem entre um conjunto de tags

<jsp-config>   
     <taglib>  
    ...  
     <taglib>  
</jsp-config>

Devo adicionar algo específico de config pro web.xml?

Fiz alguns teste que achei no fórum, sobre alterar no meu jsp

por

gerando o erro:

/jsp/jstl/core é o correto…

o problema é que vc está com um jar da jstl incompatível com o tomcat 5.5… não tem nenhum jar da jstl no servidor?

Não nenhuma, removi todas que estavam na pasta lib. do meu projeto e conferi na pasta do tomcat, só tem jstl.jar e standard.jar mas esta na pasta de exemplos de aplicações do tomcat.

cria um projeto novo em branco, coloque uma jsp com declarações das taglibs e rode no seu servidor. Funciona?

[quote=Lucas Cavalcanti] /jsp/jstl/core é o correto…

o problema é que vc está com um jar da jstl incompatível com o tomcat 5.5… não tem nenhum jar da jstl no servidor?[/quote]

Coloquei a jstl-1_1-mr2-api.jar na minha pasta lib do projeto e add na minha buildpath. Ta funcionando agora. Vou fazer o deploi do projeto pra começar a testar se não ha mais incompatibilidade, mas acho que agora vai.

Valeu mesmo Lucas, ajudou muito mesmo meu velho!!!

abcs

:wink: