Bom dia. Já verifiquei todos os arquivos e não sei pq fica um warning no @ViewScoped e @RequestScoped Tá acontecendo isso em duas classes que o usa segue abaixo
package br.com.caelum.livraria.bean;
import java.io.Serializable;
import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import br.com.caelum.livraria.dao.UsuarioDao;
import br.com.caelum.livraria.modelo.Usuario;
@Named
@RequestScoped
public class LoginBean implements Serializable {
private static final long serialVersionUID = 1L;
private Usuario usuario = new Usuario();
private UsuarioDao usuarioDao;
@Inject
public LoginBean(UsuarioDao usuarioDao){
this.usuarioDao = usuarioDao;
}
public Usuario getUsuario() {
return usuario;
}
public String efetuaLogin() {
System.out.println("fazendo login do usuario " + this.usuario.getEmail());
FacesContext context = FacesContext.getCurrentInstance();
boolean existe = usuarioDao.existe(this.usuario);
if(existe ) {
context.getExternalContext().getSessionMap().put("usuarioLogado", this.usuario);
return "livro?faces-redirect=true";
}
context.getExternalContext().getFlash().setKeepMessages(true);
context.addMessage(null, new FacesMessage("Usu�rio n�o encontrado"));
return "login?faces-redirect=true";
}
public String deslogar() {
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getSessionMap().remove("usuarioLogado");
return "login?faces-redirect=true";
}
}
Warning Type LoginBean (with a non-private constructor with no parameters) is not a legal type of normal scoped bean LoginBean because it cannot be proxied by the container [JSR-346 §3.15]
package br.com.caelum.livraria.bean;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import br.com.alura.alura_lib.dao.DAO;
import br.com.caelum.livraria.modelo.Autor;
import br.com.caelum.livraria.modelo.Livro;
@Named
@ViewScoped
public class LivroBean implements Serializable {
private static final long serialVersionUID = 1L;
private Livro livro = new Livro();
private Integer autorId;
private List<Livro> livros;
private DAO<Autor> autorDao;
private DAO<Livro> livroDao;
@Inject
public LivroBean(DAO<Livro> livroDao, DAO<Autor> autorDao){
this.livroDao = livroDao;
this.autorDao = autorDao;
}
public void setAutorId(Integer autorId) {
this.autorId = autorId;
}
public Integer getAutorId() {
return autorId;
}
public Livro getLivro() {
return livro;
}
public List<Livro> getLivros() {
if(this.livros == null) {
this.livros = livroDao.listaTodos();
}
return livros;
}
public List<Autor> getAutores() {
return autorDao.listaTodos();
}
public List<Autor> getAutoresDoLivro() {
return this.livro.getAutores();
}
public void carregarLivroPelaId() {
this.livro = livroDao.buscaPorId(this.livro.getId());
}
public void gravarAutor() {
Autor autor = autorDao.buscaPorId(this.autorId);
this.livro.adicionaAutor(autor);
System.out.println("Escrito por: " + autor.getNome());
}
public void gravar() {
System.out.println("Gravando livro " + this.livro.getTitulo());
if (livro.getAutores().isEmpty()) {
FacesContext.getCurrentInstance().addMessage("autor",
new FacesMessage("Livro deve ter pelo menos um Autor."));
return;
}
if(this.livro.getId() == null) {
livroDao.adiciona(this.livro);
this.livros = livroDao.listaTodos();
} else {
livroDao.atualiza(this.livro);
}
this.livro = new Livro();
}
public void remover(Livro livro) {
System.out.println("Removendo livro");
livroDao.remove(livro);
this.livros = livroDao.listaTodos();
}
public void removerAutorDoLivro(Autor autor) {
this.livro.removeAutor(autor);
}
public void carregar(Livro livro) {
System.out.println("Carregando livro");
this.livro = livro;
}
public String formAutor() {
System.out.println("Chamanda do formul�rio do Autor.");
return "autor?faces-redirect=true";
}
public void comecaComDigitoUm(FacesContext fc, UIComponent component,
Object value) throws ValidatorException {
String valor = value.toString();
if (!valor.startsWith("1")) {
throw new ValidatorException(new FacesMessage(
"ISBN deveria come�ar com 1"));
}
}
}
Warning Type LivroBean (with a non-private constructor with no parameters) is not a legal type of normal scoped bean LivroBean because it cannot be proxied by the container [JSR-346 §3.15]
EDITADO Copiei e colei as classes que estão disponibilizada no curso