tira o filtro do VRaptor, e crie um Filter que só imprime o request e o response, as classes deles e o resultado do instanceof…
às vezes vc subiu o jboss com alguma configuração que não usa httpServlet
tira o filtro do VRaptor, e crie um Filter que só imprime o request e o response, as classes deles e o resultado do instanceof…
às vezes vc subiu o jboss com alguma configuração que não usa httpServlet
se o instanceof retorna falso elas não implementam HttpServletRequest e Response, simples assim.
concordo que na API do tomcat 6 oficial essas classes implementam os HSRs, mas e no tomcat dentro do jboss?
será que é a mesma versão?
no debug do eclipse, use a view Display, e digite isso (com breakpoint no if problemático):
//selecione cada linha separadamente e aperte Ctrl+D pro eclipse executar
req.getClass();
req.getClass().getInterfaces();
o que ele retorna?
então ou o seu java não sabe fazer instanceof ou o tomcat que vc está usando é modificado 
faz aquelas linhas de debug que eu te pedi, por favor, e posta aqui pra eu ter uma idéia melhor do que está acontecendo
Oi Seu fagner
Simplesmente um bug incrivel. O jboss nao esta passando um httpservletrequest/response? Faz algum sentido?
Teria como voce testar nos ultimos betas do 6? Alguma coisa esta muito errada.
paulo
é como se o servlet-api.jar tivesse uma interface diferente da que o tomcat usou na implementação.
podia tentar substituir esse arquivo de interfaces pelo que tomcat usa, pra ver se funciona.
Fala galera.
Estou com o mesmo problema…
Alguem solucionou!?
Valeu.
vc tá com a última versão do VRaptor? 3.3.1?
Descobri, conflito da api servlet-api que estava no meu projeto removi do build e ta tudo lindo!
Ola
Quando faço o deploy de um WAR no JBoss 5.1 recebo o seguinte erro:
javax.servlet.ServletException: VRaptor must be run inside a Servlet environment. Portlets and others aren't supported. br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:72) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
Andei olhando o fonte do VRaptor, mais exatamente a o filtro (br.com.caelum.vraptor.VRaptor ) e ele tem o seguinte código:
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException,
ServletException {
if (!(req instanceof HttpServletRequest) || !(res instanceof HttpServletResponse)) {
throw new ServletException(
"VRaptor must be run inside a Servlet environment. Portlets and others aren't supported.");
}
O connector do Tomcat 6, embedded no JBoss 5.1, utiliza as classes org.apache.catalina.connector.RequestFacade e org.apache.catalina.connector.ResponseFacade, estas que implementam, de qualquer maneira, HttpServletRequest. Estranho o instanceof não funcionar.
Alguma idéia?
Lucas
Eu verifiquei isso debugando já. As classes que ele utiliza são essas que citei no primeiro post da thread, mais exatamente org.apache.catalina.connector.RequestFacade e org.apache.catalina.connector.ResponseFacade
Verifiquei na API do Tomcat 6 que ambas implementam HttpServletRequest, HttpServletResponse, porém o instanceof retorna false. (???)
Eu estou usando a configuration web do JBoss, ela me atende já.
Bem, vou investigar aqui, não existe mágica. rs
Tks!
Referência:
http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/RequestFacade.html
http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/connector/ResponseFacade.html
Obs: O JBossAS utiliza o JBoss Web, este que, por sua vez, é baseado no Tomcat .
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
logger.debug("request : " + req.getClass().getName());
logger.debug("response : " + res.getClass().getName());
logger.debug("instanceof request => "
+ (req instanceof HttpServletRequest));
logger.debug("instanceof response => "
+ (res instanceof HttpServletResponse));
}
req.getClass().getInterfaces() >> [interface javax.servlet.http.HttpServletRequest]
res.getClass().getInterfaces() >> [interface javax.servlet.http.HttpServletResponse]
Acredita que no instanceof retorna false? rs