VRaptor, Sitemesh e sessao

Olá,

Estou utilizando o VRAPTOR com Sitemesh e localmente funciona perfeitamente. Quando subo para o servidor, Heroku, boa parte do sistema funciona perfeitamente, mas algumas partes simplesmente dão este erro:

java.lang.RuntimeException: org.apache.jasper.JasperException: javax.el.ELException: java.lang.IllegalStateException: No SessionManager
	at com.opensymphony.sitemesh.webapp.decorator.BaseWebAppDecorator.render(BaseWebAppDecorator.java:39)
	at com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:84)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1291)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:443)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:556)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:227)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1044)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:372)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:189)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:978)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:369)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:486)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:933)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:995)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:668)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:679)

Desabilitei o Sitemesh e percebi que sem o sitemesh o erro não acontece.

Segue minhas configuracoes do sitemesh:

<?xml version="1.0" encoding="UTF-8"?>

<decorators defaultdir="/WEB-INF/jsp/decorators">

    
    <excludes>
        <pattern>*itemFBLikeIFrame*</pattern>
        <pattern>*/gadash.jsp</pattern>
        <pattern>*/info/*</pattern>
        <pattern>*.html</pattern>
    </excludes>

    <decorator name="decorator_account" page="decorator_account.jsp">
        <pattern>/admin*</pattern>
        <pattern>/dashboard*</pattern>
        <pattern>/*.jsp</pattern>
    </decorator>

    <decorator name="decorator_store" page="decorator_store.jsp">
        <pattern>*</pattern>
        <pattern>/*</pattern>
    </decorator>

</decorators>

a pagina sendo acessada é: /loginOrRegister, ou seja, entra nas regras do decorator_store…

Outra informação, segue a instrução que me faz chegar no /loginOrRegister:

validator.checking(new Validations() { {
            that(customerSessionManager.isSignedIn(), "checkout.invalid", "checkout.not.signedIn");
        }} );
        validator.onErrorRedirectTo(StoreController.class).loginOrRegister();

Baseado nessas informações, vocês poderiam me ajudar?

Muito Obrigado

por ser um erro javax.el.ELException pode ser que seja em um dos seus decorators… deve ter alguma linha lá causando esse erro.

Lucas, obrigado, com a sua ajuda consegui descobrir o ponto!

é aqui:

                    <div id="error_container" class="alert alert-error">
                        <button type="button" class="close" data-dismiss="alert">&times;</button>
                        ${errors[0].message}
                    </div>

Porem o código está correto, mas se eu chamo onErrorRedirectTo da aquela exception. Caso eu chame onErrorForwardTo da certo.
Tem alguma explicação para isso? Solução também?..

Obrigado.

se vc apaga esse código e dá um redirect to, funciona?

Sim, funciona Lucas… =/

Alguma idéia?

Obrigado…

tenta, ao invés de fazer ${errors[0].message}, fazer um c:forEach na variável errors.