Problemas com JSF, Weld CDI e TomCat [RESOLVIDO]

Eu Coloquei no META-INF, mais coloquei no WEB-INF pra fazer um teste

tira o @RequestScoped do metodo dessa classe pra teste

public class JPAUtil {  
  
    private static EntityManagerFactory emf = Persistence  
            .createEntityManagerFactory("tributoProduto");  
  
    @Produces  
    //@RequestScoped  //tire o  requestscoped
    public EntityManager getEntityManager() {  
        return emf.createEntityManager();  
    }  
  
    public void close(@Disposes EntityManager em) {  
        em.close();  
    }  
  
}  

e vê se muda a mensagem

tirei o @RequestScoped e nada…

vou colocar as libs, só pra desencargo

o seu EntityManagerFactory está static ainda ?

se estiver, põe um @Producer… e de quebra põe ele com o @ApplicationScoped para ser criado uma só vez


private EntityManagerFactory emf;

@Produces @ApplicationScoped
public void createEMF(EntityManagerFactory emf){
    this.emf = emf
}

e você pode também adicionar um @Dispose para fechar automágicamente a sua fábrica

public void createEMF(@Dispose EntityManagerFactory emf){
    emf.close();
}

velhinho faz o seguinte

vc disse que esta usando a versão 2.0 do weld

troca pra versão 1.1 final

a versão 2.0 é um beta ainda

Voltei pro Weld 1.1, mais voltou o erro inicial do nullPointer.

Era pra ser tão difícil assim?

não era não,

coloca o log do erro atual e o codigo das classes apos as alterações

ok, valeu Danilo, você está me ajudando muito.

public class JPAUtil {
	private static EntityManagerFactory emf = Persistence
			.createEntityManagerFactory("tributoProduto");

	@Produces
	@RequestScoped
	public EntityManager getEntityManager() {
		return emf.createEntityManager();
	}

	public void close(@Disposes EntityManager em) {
		em.close();
	}
}
public class DAO<T> implements Serializable {

	private static final long serialVersionUID = 1L;

	private final Class<T> classe;

	public DAO(Class<T> classe) {
		this.classe = classe;
	}

	@Inject
	private EntityManager em;

	public void adiciona(T t) {
		em.getTransaction().begin();
		em.persist(t);
		em.getTransaction().commit();
	}
}
public class DAOFactory {

	@Inject
	private EntityManager em;

	@SuppressWarnings({ "rawtypes", "unchecked" })
	@Produces
	@Dependent
	public DAO create(final InjectionPoint injectionPoint) {
		ParameterizedType parameterizedType = (ParameterizedType) injectionPoint
				.getType();
		Class classe = (Class) parameterizedType.getActualTypeArguments()[0];
		return new DAO(classe);

	}

}

Acabei de notar que esse bean, no método getulista(), passa um DAO pra outra Classe;

@Named
@ViewScoped
public class CidadeBean implements Serializable {

	@Inject
	private Cidade cidade;

	@Inject
	private DAO<Cidade> dao;

	private LazyDataModel<Cidade> lista;

	public void grava() {
		if (this.cidade.getId() != null)
			dao.atualiza(this.cidade);
		else
			dao.adiciona(this.cidade);
		this.cidade = new Cidade();
	}

	public LazyDataModel<Cidade> getLista() {

		if (lista == null) {
			lista = new DataModel<Cidade>(dao);
		}
		return lista;
	}
public class DataModel<T> extends LazyDataModel<T> {

	private static final long serialVersionUID = 1L;
	private List<T> lista;	
	private DAO<T> dao;

	public DataModel(DAO<T> dao) {
		this.dao = dao;
	}

//Restante da Classe
}

cria um novo construtor aqui no DAO que vai receber a Classe e o EntityManager



public class DAO<T> implements Serializable {  
  
    private static final long serialVersionUID = 1L;  
  
    private final Class<T> classe;  
  
    public DAO(Class<T> classe, EntityManager em) {  // construtor com o entitymanager
        this.classe = classe;  
        this.em = em;
    }  
  
    @Inject  // pode tirar o inject daqui ele não sera mais necessario
    private EntityManager em;  
  
    public void adiciona(T t) {  
        em.getTransaction().begin();  
        em.persist(t);  
        em.getTransaction().commit();  
    }  
}  

na fabrica usa o novo construtor

public class DAOFactory {  
  
    @Inject  
    private EntityManager em;  
  
    @SuppressWarnings({ "rawtypes", "unchecked" })  
    @Produces  
    @Dependent  
    public DAO create(final InjectionPoint injectionPoint) {  
        ParameterizedType parameterizedType = (ParameterizedType) injectionPoint  
                .getType();  
        Class classe = (Class) parameterizedType.getActualTypeArguments()[0];  
        return new DAO(classe, em);  
  
    }  
  
}  

lembra o que eu falei antes, quando vc da new o conteiner não vai injetar as dependências que a classe venha precisar por isso vc deve passar pra classe essa dependência

se agente parar pra analisar vamos perceber que o cdi não tem como construir a classe DAO sozinha porque ele vai depender de onde vai ser injetada por isso criamos a fabrica

mas não adianta vc construir o dao passando a classe não passar o entitymanager tambem por que como estamos dando new no dao o cdi não vai injetar o entitymanager

Agora que eu entendi, funcionou Certinho…

Muito Obrigado pela ajuda de todos em especial o DaniloAndrade.

Abraços!

show, posta como resolvido o post.

blzzz

Olá Boa Tarde!

Prezados estou passando pelo problema só que já apliquei a solução aqui desenvolvida mais não tive sucesso alguem poderia me dar uma força segue o erro.

16:30:34,250 INFO  [org.jboss.weld.Version] - WELD-000900: 2.1.2 (Final)
16:30:34,389 INFO  [org.jboss.weld.Bootstrap] - WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
16:30:34,695 INFO  [org.jboss.weld.environment.tomcat7.Tomcat7Container] - Tomcat 7+ detected, CDI injection will be available in Servlets and Filters. Injection into Listeners is not supported
16:30:34,745 WARN  [org.jboss.weld.Interceptor] - WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled
16:30:34,746 WARN  [org.jboss.weld.Interceptor] - WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled
Fev 06, 2014 4:30:34 PM org.apache.catalina.core.StandardContext listenerStart
Grave: Exception sending context initialized event to listener instance of class org.jboss.weld.environment.servlet.Listener
org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type DAO<Ocupacao> with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private br.com.dominio.controller.OcupacaoController.dao
  at br.com.dominio.controller.OcupacaoController.dao(OcupacaoController.java:0)

Ocupacaocontroller

@Named 
@ViewScoped
public class OcupacaoController implements Serializable {
	
	private static final long serialVersionUID = 1229520061651250879L;

	private Ocupacao registroSelecionado;
	private List<Ocupacao> ocupacoes;
	private int totalRegistros;	

    @Inject
	private Ocupacao ocupacao;
	
	
	@Inject
	private DAO<Ocupacao> dao;
	

	public DAO<Ocupacao> getDao() {
		return dao;
	}

	public void setDao(DAO<Ocupacao> dao) {
		this.dao = dao;
	}

        ...

Notei que no log menciona algo a respeito de qualificadores, não fiz nada disto estou bem no começo do projeto e só queria ver a execução do mesmo mostrando a unica pagina que tenho e ver as tabelas no banco serem criadas pelo Hibernate mais num funfou mesmo seguindo aqui as explicações dadas pelo Sr. Danilo.

O Projeto usa JSF 2.2, JPA, Hibernate 4.3

PessoALL,

Fiz tudo como manda o figurino… mas estou com um problema aqui;

public class UsuarioService implements Serializable
{	
	private static final long serialVersionUID = 1L;
	
	@Inject
	private GenericDAO<Usuario> usuarioDAO; <= AQUI ESTÁ COM UM WARNING (No bean is eligible for injection to the injection point [JSR-299 §5.2.1])
	
	private static Logger logger = Logger.getLogger(Handler.class);
	
	public UsuarioService(){}
    
	@Log
        public Usuario login(String username, String password)

quando uso o GenericDAO para criar um DAO de um objeto. Como não tenho um construtor sem argumentos… meu único construtor na classe GenericDAO é esse (ver abaixo);

public class GenericDAO<T> implements Serializable
{
	private static final long serialVersionUID = 1L;
	
	private EntityManager em;

	private Class<T> entityClass;
	
	public GenericDAO(Class<T> entityClass, EntityManager em)
	{
		this.entityClass = entityClass;
		this.em = em;
	}
...

estou tomando o erro logo na inicialização do Tomcat (log de erro completo abaixo);

E agora? como fazer?

DAOFactory

public class DAOFactory
{
	@Inject
	private EntityManager em;
	
	@Produces
    @SuppressWarnings({ "unchecked", "rawtypes" })  
	public GenericDAO create(InjectionPoint injectionPoint)
	{
		ParameterizedType type = (ParameterizedType) injectionPoint.getType();
		
		Class classe = (Class) type.getActualTypeArguments()[0];
		
		return new GenericDAO(classe, em);
	}
}

JPAUtil

@ApplicationScoped
public class JPAUtil
{
	private static EntityManagerFactory emf = Persistence.createEntityManagerFactory("portal");
	
	@Produces
	@RequestScoped
	public static EntityManager getEntityManager()
	{
		return emf.createEntityManager();
	}
	
    public void close(@Disposes EntityManager em)
    {
    	em.close();
    }
}

Log da console do TomCat

out 09, 2014 3:58:20 PM org.apache.catalina.core.AprLifecycleListener init
INFORMAÇÕES: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jre8\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:\Program Files\Common Files\Microsoft Shared\Microsoft Online Services;C:\Program Files (x86)\Common Files\Microsoft Shared\Microsoft Online Services;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\WIDCOMM\Bluetooth Software\;C:\Program Files\WIDCOMM\Bluetooth Software\syswow64;C:\Program Files (x86)\Intel\Services\IPT\;C:\Program Files (x86)\Common Files\Roxio Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\OEM\12.0\DLLShared\;C:\Program Files (x86)\Roxio\OEM\AudioCore\;%M2%;C:\Program Files\Java\jdk1.8.0_05\bin;C:\Program Files\SafeNet\Authentication\SAC\x32;C:\Program Files\SafeNet\Authentication\SAC\x64;C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files (x86)\OpenSSH\bin;%M2%;c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;c:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\;C:\Program Files (x86)\MySQL\MySQL Utilities 1.3.5\;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x86;C:\Program Files (x86)\Intel\OpenCL SDK\2.0\bin\x64;C:\Program Files\NetBeans 8.0\java\maven\bin;C:\Program Files (x86)\Git\bin;.
out 09, 2014 3:58:20 PM org.apache.tomcat.util.digester.SetPropertiesRule begin
ADVERTÊNCIA: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:portal' did not find a matching property.
out 09, 2014 3:58:20 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["http-nio-8080"]
out 09, 2014 3:58:20 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
out 09, 2014 3:58:20 PM org.apache.coyote.AbstractProtocol init
INFORMAÇÕES: Initializing ProtocolHandler ["ajp-nio-8009"]
out 09, 2014 3:58:20 PM org.apache.tomcat.util.net.NioSelectorPool getSharedSelector
INFORMAÇÕES: Using a shared selector for servlet write/read
out 09, 2014 3:58:20 PM org.apache.catalina.startup.Catalina load
INFORMAÇÕES: Initialization processed in 1013 ms
out 09, 2014 3:58:20 PM org.apache.catalina.core.StandardService startInternal
INFORMAÇÕES: Starting service Catalina
out 09, 2014 3:58:20 PM org.apache.catalina.core.StandardEngine startInternal
INFORMAÇÕES: Starting Servlet Engine: Apache Tomcat/8.0.8
2014-10-09 15:58:25 INFO  EnhancedListener:59 - Initialize Weld using ServletContainerInitializer
2014-10-09 15:58:25 INFO  Version:151 - WELD-000900: 2.2.4 (Final)
2014-10-09 15:58:25 INFO  Bootstrap:204 - WELD-000101: Transactional services not available. Injection of @Inject UserTransaction not available. Transactional observers will be invoked synchronously.
2014-10-09 15:58:25 WARN  Interceptor:47 - WELD-001700: Interceptor annotation class javax.ejb.PostActivate not found, interception based on it is not enabled
2014-10-09 15:58:25 WARN  Interceptor:47 - WELD-001700: Interceptor annotation class javax.ejb.PrePassivate not found, interception based on it is not enabled
2014-10-09 15:58:26 INFO  TomcatContainer:41 - Tomcat 7+ detected, CDI injection will be available in Servlets, Filters and Listeners.
out 09, 2014 3:58:27 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/portal]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:851)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/portal]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	... 6 more
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type GenericDAO<Usuario> with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private br.com.snclavalinmarte.portal.service.UsuarioService.usuarioDAO
  at br.com.snclavalinmarte.portal.service.UsuarioService.usuarioDAO(UsuarioService.java:0)

	at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:370)
	at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:291)
	at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
	at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:165)
	at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:529)
	at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
	at org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
	at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
	at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
	... 4 more

out 09, 2014 3:58:27 PM org.apache.catalina.core.ContainerBase startInternal
GRAVE: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:916)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:752)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1396)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1386)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)
	at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:851)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 6 more

out 09, 2014 3:58:27 PM org.apache.catalina.startup.Catalina start
GRAVE: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:625)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:351)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:485)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:752)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
	at org.apache.catalina.core.StandardService.startInternal(StandardService.java:439)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
	at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:924)
	at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	... 11 more

out 09, 2014 3:58:27 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler ["http-nio-8080"]
out 09, 2014 3:58:27 PM org.apache.coyote.AbstractProtocol pause
INFORMAÇÕES: Pausing ProtocolHandler ["ajp-nio-8009"]
out 09, 2014 3:58:27 PM org.apache.catalina.core.StandardService stopInternal
INFORMAÇÕES: Stopping service Catalina
out 09, 2014 3:58:27 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler ["http-nio-8080"]
out 09, 2014 3:58:27 PM org.apache.coyote.AbstractProtocol destroy
INFORMAÇÕES: Destroying ProtocolHandler ["ajp-nio-8009"]
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "Abandoned connection cleanup thread":
 java.lang.Object.wait(Native Method)
 java.lang.ref.ReferenceQueue.remove(Unknown Source)
 com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:40)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "Abandoned connection cleanup thread":
 java.lang.Object.wait(Native Method)
 java.lang.ref.ReferenceQueue.remove(Unknown Source)
 com.mysql.jdbc.AbandonedConnectionCleanupThread.run(AbandonedConnectionCleanupThread.java:40)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-worker-1] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-worker-1":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-worker-2] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-worker-2":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-worker-3] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-worker-3":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-worker-4] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-worker-4":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-preloader-1] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-preloader-1":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-preloader-2] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-preloader-2":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: The web application [/portal] appears to have started a thread named [weld-preloader-3] but has failed to stop it. This is very likely to create a memory leak.
out 09, 2014 3:58:27 PM org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
GRAVE: Stack trace of thread "weld-preloader-3":
 sun.misc.Unsafe.park(Native Method)
 java.util.concurrent.locks.LockSupport.park(Unknown Source)
 java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
 java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
 java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
 java.lang.Thread.run(Unknown Source)

Olá Marcelo boa tarde.

Prezado eu tava com os meus estudo parado mesmo mais apos este período eu observei uma videos aulas e estou voltando ao meu projeto, estou refazendo ele agora usando o Maven e não esta dando nenhum problema ( do que vc esta relatando ) infelizmente eu não sou a pessoa ideal para tirar duvidas rsrsrsrs.

Com certeza alguém com maior experiencia deve dar um retorno, só aproveitei a deixa pra comentar uma vez que estou voltando ao projeto

Você está usando CDI 1.1? se sim, precisa trocar o código do seu produtor para algo assim:

public class DAOFactory  
{  
    @Inject  
    private EntityManager em;  
      
    @Produces  
    @SuppressWarnings({ "unchecked", "rawtypes" })    
    public <T> GenericDAO<T> create(InjectionPoint injectionPoint)  
    {  
        ParameterizedType type = (ParameterizedType) injectionPoint.getType();  
          
        Class classe = (Class) type.getActualTypeArguments()[0];  
          
        return new GenericDAO(classe, em);  
    }  
}  

Faz a alteração e veja se resolve.

Olá Prezados bom dia.

Queria tirar uma duvida, quando se tem um projeto com CDI temos os Jar´s cdi-api.jar e weld-servlet.jar do Weld e que eu entendo que se trata de CDI pelo que eu estudei , agora estou iniciando um projeto que nas dependências do maven eu tenho o javax.inject que corresponde ao javax.inject-1.jar e faço nele eu utilizo as anotações @named e @inject e não tenho os jar´s mencionados anteriormente, isto esta me deixando confuso alguém poderia comentar sobre?

Qual a dependencia do maven? coloca o pom ae

Olá Mario bom dia!

Então é um projeto de estudo antigo que eu utilizava com Spring, com a introdução do CDI “Use CDI no seu próximo projeto” eu resolvi fazer isto sem o Spring com o Weld e me dei mal não consegui, passado-se muitos meses eu observei umas aulas na net e resolvi voltar a um novo projeto usando CDI mais com o Spring mais, o JSF 2.2 é o cara e não o Spring MVC, o que me intrigou foi que na video aula há a injeção mais não tem weld e isto me confundiu e queria tirar esta duvida se eu vou precisar do weld também ou não.

O projeto tá no inicio, tá funcionando o unico problema que vi é com a mensagem do faces o h:message acho que não tá existindo o contexto do faces., bem mais ai vai o pom ou melhor parte dele.

<dependencyManagement>
	<dependencies>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-framework-bom</artifactId>
			<version>4.1.0.RELEASE</version>
			<type>pom</type>
			<scope>import</scope>
		</dependency>
	</dependencies>
</dependencyManagement>

<dependencies>

	<!-- SLF4J -->
	<dependency>
		<groupId>org.slf4j</groupId>
		<artifactId>slf4j-log4j12</artifactId>
		<version>1.7.7</version>
	</dependency>

	<!-- COMMONS LANG3 -->
	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-lang3</artifactId>
		<version>3.1</version>
	</dependency>

	<dependency>
		<groupId>commons-fileupload</groupId>
		<artifactId>commons-fileupload</artifactId>
		<version>1.3.1</version>
	</dependency>

	<dependency>
		<groupId>org.apache.commons</groupId>
		<artifactId>commons-io</artifactId>
		<version>1.3.2</version>
	</dependency>

	<dependency>
		<groupId>javax.inject</groupId>
		<artifactId>javax.inject</artifactId>
		<version>1</version>
	</dependency>

	<!-- SERVLET API -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>javax.servlet-api</artifactId>
		<version>3.1.0</version>
	</dependency>

	<!-- JAVAEE WEB API -->
	<dependency>
		<groupId>javax</groupId>
		<artifactId>javaee-web-api</artifactId>
		<version>7.0</version>
		<scope>provided</scope>
	</dependency>

	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-api</artifactId>
		<version>2.2.8</version>
	</dependency>

	<dependency>
		<groupId>com.sun.faces</groupId>
		<artifactId>jsf-impl</artifactId>
		<version>2.2.8</version>
	</dependency>

	<!-- JSTL -->
	<dependency>
		<groupId>javax.servlet</groupId>
		<artifactId>jstl</artifactId>
		<version>1.2</version>
	</dependency>

	<dependency>
		<groupId>javax.servlet.jsp</groupId>
		<artifactId>jsp-api</artifactId>
		<version>2.2</version>
	</dependency>

	<!-- PRIMEFACES -->
	<dependency>
		<groupId>org.primefaces</groupId>
		<artifactId>primefaces</artifactId>
		<version>5.0</version>
	</dependency>

	<dependency>
		<groupId>org.primefaces.themes</groupId>
		<artifactId>all-themes</artifactId>
		<version>1.0.10</version>
	</dependency>

	<!-- Spring dependencies -->
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-core</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-orm</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-web</artifactId>
		</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-test</artifactId>
	</dependency>
	<dependency>
		<groupId>org.springframework</groupId>
		<artifactId>spring-tx</artifactId>
	</dependency>

	<!-- SPRING SECURITY WEB -->
	<dependency> <groupId>org.springframework.security</groupId> 
		<artifactId>spring-security-web
		</artifactId> <version>${spring.security.version}</version> 
	</dependency> 

	<!-- SPRING SECURITY -->
	<dependency> <groupId>org.springframework.security</groupId> 
		<artifactId>spring-security-config</artifactId>
		<version>${spring.security.version}</version> 
	</dependency> 

	<!-- Hibernate dependencies -->
	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-entitymanager</artifactId>
		<version>4.3.4.Final</version>
	</dependency>

	<dependency>
		<groupId>org.hibernate</groupId>
		<artifactId>hibernate-validator</artifactId>
		<version>5.1.0.Final</version>
	</dependency>

	<!-- C2P0 dependencies -->
	<dependency>
		<groupId>c3p0</groupId>
		<artifactId>c3p0</artifactId>
		<version>0.9.1.2</version>
	</dependency>

	<!-- Database dependencies -->

	<!-- PostgresSQL dependencies -->
	<dependency>
		<groupId>commons-dbcp</groupId>
		<artifactId>commons-dbcp</artifactId>
		<version>1.3</version>
		<exclusions>
			<exclusion>
				<groupId>commons-logging</groupId>
				<artifactId>commons-logging</artifactId>
			</exclusion>
			<exclusion>
				<groupId>xml-apis</groupId>
				<artifactId>xml-apis</artifactId>
			</exclusion>
		</exclusions>
	</dependency>

	<dependency>
		<groupId>postgresql</groupId>
		<artifactId>postgresql</artifactId>
		<version>9.1-901.jdbc4</version>
	</dependency>

	<!-- Utilities -->
	<dependency>
		<groupId>commons-collections</groupId>
		<artifactId>commons-collections</artifactId>
		<version>3.2.1</version>
	</dependency>

</dependencies>

O javax.inject é de uma spec chamada DI (https://jcp.org/en/jsr/detail?id=330) que é diferente do CDI (https://jcp.org/en/jsr/detail?id=299 e https://jcp.org/en/jsr/detail?id=346).

Na spec de DI só é definida a annotations @Inject e algumas outras, mas não possui as annotations de escopo por exemplo. Essa spec DI o Spring suporta, por isso seu código funciona com ele. Pro Spring usar @Inject tem o mesmo efeito de usar @Autowired. Além do Spring o Guice também suporta esta spec.