Boa noite pessoal, trabalhando em minha aplicação percebi um comportamento indesejado. Ao logar como um usuário em navegador e tentar editar uma entidade por exemplo faz com que outro usuário logado em outro navegador tenha estes mesmos dados carregados nessa outra sessão. O que não deveria ocorrer, precisam ter comportamentos independentes.
Meu bean / controller:
@Controller
@Scope("request")
public class UsuarioBean implements Serializable {
private static final long serialVersionUID = 1L;
@Autowired
private UsuarioDAO usuarioDAO;
@Autowired
private CategoriaDAO categoriaDAO;
@Autowired
private FacesContext context;
@Autowired
// código omitido
Tentei fazer uso da anotação do Spring @Scope("request") mas em contrapartida a aplicação passa a ter a seguinte exception:
Error creating bean with name 'usuarioBean': Unsatisfied dependency expressed through field 'context'; nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'javax.faces.context.FacesContext' available: expected single matching bean but found 2: com.sun.faces.context.FacesContextImpl@6c42f332,getFacesContext
Minha classe que produz o FacesContext:
package br.com.ygormagalhaes.sgcv.util;
import java.io.Serializable;
import javax.faces.context.FacesContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.context.annotation.RequestScope;
@Configuration
public class FacesContextProducer implements Serializable {
private static final long serialVersionUID = 1L;
@Bean
@RequestScope
public FacesContext getFacesContext() {
return FacesContext.getCurrentInstance();
}
}
Já tentei usar @RequestScope também do Spring e tenho a mesma exception. Com @RequestScoped do próprio JSF o sistema funciona normalmente mas com o problema descrito.