Criei um projeto web no netbeans 7.3.1 e habilitei a injeção de dependências e apesar do arquivo beans.xml ter sido criado, quando crio um bean com as anotações, recebo a seguinte mensagem de erro do pré compilador do netbeans: “O artefato CDI foi encontrado, mas não há arquivo beans.xml”. Dei um pesquisa porem não encontrei nada muito claro sobre como configurar isso. Aguém, indica algum tutorial, ou sabe como fazer isso.
Coloque o arquivo beans.xml dentro da pasta META-INF, caso não exista crie, na raiz do pacote de fontes.
Além do que o colega disse precisa configurar um listener no webxml para o tomcat segue:
<listener>
<listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
</listener>
<resource-env-ref>
<description>Object factory para o CDI Bean Manager</description>
<resource-env-ref-name>BeanManager</resource-env-ref-name>
<resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
</resource-env-ref>
também precisa configurar o context.xml segue:
<Context antiJARLocking="true" path="/weblog">
<Resource name="BeanManager"
auth="Container"
type="javax.enterprise.inject.spi.BeanManager"
factory="org.jboss.weld.resources.ManagerObjectFactory"/>
</Context>
Fiz as alterações, porém o problema persiste.
Tenho que ler mais sobre o assunto pois sempre usei JSF, sem injeção de contexto e dependências, é que o netbeans resolveu alertar que as anotações do pacote javax.faces.bean se tornarão obsoletas e indica o uso das anotações do CDI. Por enquanto vou continuar trabalhando com as anotações do javax.faces.beans…
Mas valeu pela ajuda pessoal.
corrreto, precisa utilizar os manage bean do JSF assim com CDI:
lembrando que o import não é mais do faces.
segue:
import javax.enterprise.context.RequestScoped;
@RequestScoped
@Named(value = "loginBean")
public class LoginBean implements Serializable {
Só complementando as considerações do colega, veja esse post aqui:
http://blog.caelum.com.br/use-cdi-no-seu-proximo-projeto-java/
Veleu pessoal! Brigadão!! Show de bola!