Mentawai - Versão 1.4 lançada!

Lançada a versão 1.4 do Mentawai:

:arrow: Make IoCFilter backwards compatible with versions prior to 1.3.
(No need to migrate from 1.2 to 1.3, in other words, forget about PushIoCFilter,
just use the new IoCFilter like you were using before 1.3)

:arrow: AfterConsequenceFilter to allow a filter to modify the action after the consequence is executed.
(This is good for ConnectionFilter and HibernateFilter that wants to close the connection/session
after the jsp (view) has been executed)

:arrow: Big improvements in the consequence Redirect.java. (Thanks to Alan Burlison from Sun)

:arrow: DIFilter fixes

:arrow: Dyntags!

:arrow: A lot of other good stuff that we cannot remember now

http://www.mentaframework.org/

Alguém usa o Mentawai na Locaweb!? Tenho um projeto lá onde utilizo Spring e Hibernate. Foi mais de uma semana para o ambiente ficar redondinho!

Com o Mentawai será que a Locaweb faz alguma restrição inicial!? O que eles dizem é que tem algumas classes que utilizam reflection e por questões de segurança elas são bloqueadas no policy do tomcat. Como estou estudando o Mentawaii, analizando a possibilidade de utilizá-lo em algum projeto e o servidor que utilizo é a Locaweb meu veio essa dúvida.

Parabéns galera do Menta pelo excelente trabalho!

O Boaglio pode te falar melhor isso, acho que ele roda uma aplicação lá sem problemas

Valeu microfilo! :wink:

Estou fazendo uns testes com o Mentawai e estou gostando muito. Estou fazendo um módulo de autenticação e autorização de um sistema. A autenticação já funcionou 100% mas a autorização está dando um erro esquisito quando eu coloco uma consequência global para ACCESSDENIED. Na realidade o meu objetivo é que tanto LOGIN, quanto ACCESSDENIED caiam na página de login.

        filter(new AuthenticationFilter());
        on(LOGIN,redir("/login.jsp"));
        on(ACCESSDENIED,redir("/login.jsp"));

Só que estou recebendo o seguinte erro quando tento acessa a minha página:

15:40:19,281 ERROR  - Servlet.service() for servlet jsp threw exception
org.mentawai.core.ConsequenceException: java.lang.NullPointerException
        at org.mentawai.core.Redirect.execute(Redirect.java:115)
        at org.mentawai.tag.authorization.RequiresAuthorization.executeConsequence(RequiresAuthorization.java:94)
        at org.mentawai.tag.authorization.RequiresAuthorization.doEndTag(RequiresAuthorization.java:130)
        at org.apache.jsp.principal_jsp._jspx_meth_mtw_requiresAuthorization_0(principal_jsp.java:101)
        at org.apache.jsp.principal_jsp._jspService(principal_jsp.java:60)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.mentawai.util.DebugServletFilter.doFilter(DebugServletFilter.java:70)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
        ... 31 more

Se retirar o on(ACCESSDENIED,redir("/login.jsp")) não gera erro e não gera mais nada também a página fica em branco. :slight_smile:

O que está dando erro é o trecho da classe Redirect.java:

Output output = act.getOutput();

A action está vindo nula, daí o erro. Esse seria o comportamento correto!?

O que eu fiz foi informar ao suporte o mapeamento da extensão que vc escolher para o mentawai ser redirecionada ao MentawaiController (configurado no web.xml, o padrão é .mtw ).

De resto foi tranquilo… não usei todas features do Mentawai ainda, mas todas que usei não mostraram problemas.

A Redirect consequence foi toda reescrita. Parece que ficou esse NPE aí para o caso onde não há action.

Já corrigi e vc pode baixar o jar beta no endereço http://www.mentaframework.org/beta/mentawai.jar

Depois me fala se está ok agora…

Sergio

Valeu pessoal!!! Muito obrigado e mais um vez parabéns! :wink:

saoj, baixei o jar no link que vc passou porém o erro continuou. :frowning:

08:53:38,875 ERROR  - Servlet.service() for servlet jsp threw exception
org.mentawai.core.ConsequenceException: java.lang.NullPointerException
        at org.mentawai.core.Redirect.execute(Redirect.java:115)
        at org.mentawai.tag.authorization.RequiresAuthorization.executeConsequence(RequiresAuthorization.java:94)
        at org.mentawai.tag.authorization.RequiresAuthorization.doEndTag(RequiresAuthorization.java:130)
        at org.apache.jsp.principal_jsp._jspx_meth_mtw_requiresAuthorization_0(principal_jsp.java:101)
        at org.apache.jsp.principal_jsp._jspService(principal_jsp.java:60)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.mentawai.util.DebugServletFilter.doFilter(DebugServletFilter.java:70)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)
        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.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
        ... 31 more

Não há mais como ter NPE na linha 115 do Redirect.

Vc não está rodando o jar correto.

Tenta de novo e certifique-se que vc está rodando o jar correto.

Veja a linha 115 abaixo:


Output output = act != null ? act.getOutput() : null;

Foi mal saoj!! O firefox tinha feito cache do arquivo anterior, como o nome é o mesmo ele entendeu que era o mesmo arquivo e me deu o que estava no cache.

Para evitar esse tipo de problema não seria bom colocar a versão na URL ou no nome do arquivo!?

Valeu!

saoj, agora tenho certeza absoluta que baixei o jar que vc me passou e tenho certeza absoluta que estou usando ele e tenho certeza absoluta que o mesmo erro continua.

Não existe a possibilidade de vc ter alterado o código fonte e não ter compilado o arquivo na geração do jar!? Ou de ter gerado o jar mas o jar que está no link continuar sendo o antigo!?

Só falta isso para fechar meu módulo de autorização! :wink:

PQP. Copiei o jar errado. Não ia funcionar nunca pra vc !!!

Tenta de novo e apaga o cache ou algo assim. Mas esse jar não é firefox e sim tomcat, logo apenas um restart do tomcat será suficiente…

Agora sim!!! Módulo de autorização e autenticação concluídos! :wink:

Acho que me expressei mal em relação ao cache…o que quis dizer foi que já tinha baixado a versão estável pelo firefox com o nome “mentawai.jar” daí hoje quando fui baixar a versão que vc tinha corrigido ele na realidade não tinha baixado o novo e sim o estável que eu havia baixado anteriormente. Só por curiosidade…existe jar do firefox!? :slight_smile:

Um abraço e valeu! Estou gostando muito do framework! :smiley:

Legal, agora acho que está faltando um “Mentawai em N fáceis passos” para ser publicado aqui no GUJ, né? :wink:

Onde tem um exemplo disso pra gente se basear, Daniel ?

http://www.guj.com.br/template.by.parameter.chain?template=guj/promocoes/artigo.vm

Apoiado! :slight_smile:

Onde eu posso encontrar exemplos de uso das Dyntags e da tag de paginação!?

Muito bom!! :wink:

http://forum.mentaframework.org/posts/list/283.page