Lucas e Narciso,
Funcionou perfeitamente.
Tenho mais um dúvida, eu fiz um componente @SessionScoped para
gerenciar mensagens a serem apresentadas ao usuário. Quando eu utilizo
o forwardTo da classe Result ele imprime no JSP perfeitamente essa
mensagem, só que quando utilizo o redirectTo ele não imprime, na
verdade deveria fazer isso:
1) armazena mensagem qualquer;
2) redireciona para uma lógica;
3) no index.jsp incluído pelo arquivo da lógica imprime o List de
mensagens que é incluído pela Superclasse dos controladores que eu
fiz;
Quando uso o redirectTo está invertendo o item 2 pelo 3, e não
consegui descobrir o porque. Um lógica qualquer:
@Resource
public class EscolaridadeController extends ApplicationController
...
@Get({"/escolaridades/add/", "/escolaridades/edit/{
escolaridade.id}"})
public void formulario(Escolaridade escolaridade)
...
if(nao_atendeu_algum_item_redireciona_para_o_home_controller)
{
this.getApplicationResource().storeSystemMessage("titulo",
"descrição", tipo_da_mensagem);
this.getApplicationResource().getResult().redirectTo(HomeController.class).index();
}
Lembro que se troco por forwardTo funciona normalmente.
Ainda tem o lance de uma exception estranha que acontece em alguns
controladores:
2011-07-08 11:16:50.237:WARN::/sisui/escolaridades/
java.lang.IllegalStateException: Committed
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1046)
at
javax.servlet.ServletResponseWrapper.resetBuffer(ServletResponseWrapper.java:
202)
at org.eclipse.jetty.servlets.GzipFilter
$GZIPResponseWrapper.resetBuffer(GzipFilter.java:324)
at org.eclipse.jetty.servlets.GzipFilter
$GZIPResponseWrapper.sendRedirect(GzipFilter.java:345)
at
javax.servlet.http.HttpServletResponseWrapper.sendRedirect(HttpServletResponseWrapper.java:
136)
at
br.com.caelum.vraptor.http.VRaptorResponse.sendRedirect(VRaptorResponse.java:
46)
at br.com.caelum.vraptor.view.DefaultLogicResult
$2.intercept(DefaultLogicResult.java:124)
at br.com.caelum.vraptor.proxy.AbstractCglibProxifier
$2.intercept(AbstractCglibProxifier.java:56)
at org.hidroinformatica.sisui.controllers.LoginController$
$EnhancerByCGLIB$$67dd2ea5.formulario(<generated>)
at
vraptor.interceptors.UserSessionInterceptor.intercept(UserSessionInterceptor.java:
107)
at
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:
54)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.interceptor.ExceptionHandlerInterceptor.intercept(ExceptionHandlerInterceptor.java:
71)
at
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:
54)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.core.LazyInterceptorHandler.execute(LazyInterceptorHandler.java:
61)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:
83)
at
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:
54)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:
48)
at
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:
54)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:
69)
at
br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:
54)
at
br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:
54)
at
br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:
23)
at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
at
br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:
58)
at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
at org.eclipse.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1323)
at
org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:
77)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:
133)
at org.eclipse.jetty.servlet.ServletHandler
$CachedChain.doFilter(ServletHandler.java:1323)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:
476)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:
119)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:
480)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:
225)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:
937)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:
406)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:
183)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:
871)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:
117)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:
247)
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:
149)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:
110)
at org.eclipse.jetty.server.Server.handle(Server.java:346)
at
org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:
589)
at org.eclipse.jetty.server.HttpConnection
$RequestHandler.headerComplete(HttpConnection.java:1048)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:601)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:
214)
at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:
411)
at
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:
531)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint
$1.run(SelectChannelEndPoint.java:40)
at org.eclipse.jetty.util.thread.QueuedThreadPool
$3.run(QueuedThreadPool.java:529)
at java.lang.Thread.run(Thread.java:679)
Alguém tem um idéia do que pode ser ? Jogo pro alto e faço um
refactoring da estrutura da aplicação aqui? Queria trocar o fowardTo
pelo redirect devido ao redirecionamento independente do navegador do
usuário.