Resolvido: @named ou @managedBean

Ola pessoal estou lendo o livro core java server faces terceira edição.

Estou usando o glassfish e no texto ele fala que é preferivel usar @Named ao inves de usar @ManagedBean.

O caso é que ao colocar @Named simplemente para a aplicação ele não acha o bean, colocando de volta @ManagedBean volta a funcionar

Alguém sabe o que pode estar acontecendo?

Também aconteceu isso com você ??

Quando me deparei com esse erro achei estranho, procurei ver
se era algum bug no Glassfish, mas acabei não encontrando nada.
Como vi que estava perdendo um tempo acabei utilizando o managed bean mesmo ao inves do CDI @Named.

Não procurei mais profundamente porque estou estudando mais o JEE 5.0 do que o 6.0,
mas é uma pena que vae demorar até ter novos projetos no 6.0. Mas esse livro de JSF 3ed é excelente.

Mas ficarei vendo as respostas porque quero saber também o porque não funcionou o @Named.

Use o managedbean mesmo. É o padrão para o JSF 2. O named é pra outras coisas como CDI.

vc precisa do beans.xml no teu src para funcionar, mesmo que o arquivo estaja vazio.

criei e coloquei beans.xml no web-inf junto com web.xml e sun-web.xml mesmo assim ainda não funfa.

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">

</beans>

agradeço pessoal que esta tentando ajudar.

So postando a resolução

anteriormente estava funcionando assim com @managedBean

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean(name="user")
@SessionScoped
public class IndexManagedBean {

agora para trocar.

A anotação @Named faz parte do CDI e para ativa-la é necessário criar o arquivo beans.xml em WEB-INF
e tem um detalhe… a classe deve implementar Serializable e os imports são dos pacotes javax.enterprise e inject.

import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;

@Named("user")
@SessionScoped
public class IndexManagedBean implements Serializable{

bean.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/beans_1_0.xsd">
</beans>

Boaa …

Fui mudar meus @ManagedBean por @Named e o JBoss 7 tambem não encontrou mais os beans nas páginas
já testei colocar o beans.xml em varias partes do projeto (WEB_INF, META-INF, solto no classes, etc) e nada…

alguém tem algum palpite?

quero usar um bean CDI pra poder usar interceptor nos métodos… coisa que no @ManagedBean não é possível
Obrigado