Vraptor4 - Não consigo receber objeto populado na volta do @AroundCall usando @Inject e @Intercepts

8 views
Skip to first unread message

Jedi Pilgrim Wildstar

unread,
Jan 12, 2017, 9:00:28 AM1/12/17
to caelum-vraptor

Boa noite,

Estou tendo problemas em receber os valores do controller preenchidos ao usar o Intercept do Vraptor4:

@Intercepts
@RequestScoped
public class SessionInterceptor {

	@Inject	private Result result;	
	@Inject	private Validator validator;	
	@Inject	private Environment environment;	
	@Inject	private Session session;
	@Inject	private HttpServletRequest request;	
	@Inject	private HttpSession javaSession;
	
	@AroundCall
	public void intercept ( SimpleInterceptorStack stack ) {
		if (!session.isNew()) {
			result.include( "isLogged", session.isLogged( ) );
			result.include( "clientName", session.getClientName( ) );
		}
		
		javaSession = request.getSession();
		if (!javaSession.isNew()) {
			Session sessionTemp = (Session) javaSession.getAttribute("session");
			
			if (sessionTemp != null && !session.isNew()) {
				session = sessionTemp;
			} else if (sessionTemp == null && session.isNew()) {
				session = new Session();			
			} else {
				javaSession.setAttribute("session", session);
			}
		} else {
			session = new Session();
		}

		System.out.println( "Intercept enter: " + request.getRequestURI( ) );
		
		stack.next();
		
		javaSession.setAttribute("session", session);
		
		System.out.println( "Intercept exit: " + request.getRequestURI( ) );
	}	
}

@Controller	
public class IndexController {

	@Inject private Result result;
	@Inject private Environment environment;
	@Inject private Validator validator;
	@Inject private Session session;

	@Path( "/" )	
	public void index( ) {
		if (session.isNew()) {
			session.setNew(false);
			if(session.getLanguage() == null) {
				session.setLanguage("pt");
				System.out.println(Locale.getDefault()); 
			}
		
			if (session.getApplication() == null) {
				session.setApplication(Application.valueOf(environment.get("application").toUpperCase()));
			}
		}
	}
}

Os valores no Interceptor depois do stack.next() do session sempre chegam vazios. Já tentei de tudo e não consigo resolver.

Jedi Pilgrim Wildstar

unread,
Jan 12, 2017, 9:00:28 AM1/12/17
to caelum-vraptor

Pablo Souza

unread,
Jan 13, 2017, 7:25:42 AM1/13/17
to Caelum Vraptor
Qual o import deste private Session session; ?

--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Atenciosamente,

Pablo Souza
Twitter: @pvrsouza
Tel.: (71) 9983-7775
Reply all
Reply to author
Forward
0 new messages