Problemas com JSF, Weld CDI e TomCat [RESOLVIDO]

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.

Humm, realmente DI e CDI eu não tava alinhado com isto, bem sem querer abusar meu prezado o projeto tá rodando este fim de semana devo dar uma adiantada nele, então não sei se vale a pena mecher com weld o meu MB abaixo no metodo gravar chama displayInfoMessageToUser(“Registro criado com sucesso!”); que nada mais é do que

protected void displayInfoMessageToUser(String message) {
		FacesMessage facesMessage = new FacesMessage(FacesMessage.SEVERITY_INFO, "", message);
		//FacesUtil messageUtil = new FacesUtil();
		//messageUtil.exibirMensagemAlerta(message);
		this.facesContext.addMessage(null, facesMessage);
	}	

como utilizo o primefaces ele chama o p:growl porém a caixa vem vazia sem nenhuma informação vc teria alguma dica do que poderia ser?

MB

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import javax.faces.view.ViewScoped;

import javax.inject.Inject;
import javax.inject.Named;

import org.apache.log4j.Logger;
import org.primefaces.event.SelectEvent;

import br.com.dominio.modelo.Ocupacao;
import br.com.dominio.servicos.OcupacaoService;

@Named(value="ocupacaoC")
@ViewScoped
public class OcupacaoController extends AbstractMB implements Serializable {
	
	private static final long serialVersionUID = 201404221641L;
	private static final Logger logger = Logger.getLogger(OcupacaoController.class);

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

	@Inject		
	private OcupacaoService ocupacaoService;

	public OcupacaoController() {
	}

        public void gravar() {
		try {
			this.ocupacaoService.update(ocupacao);
			closeDialog();
			displayInfoMessageToUser("Registro criado com sucesso!");
			load();
			preparaInclusao();						
		} catch (Exception e) {
            keepDialogOpen();
            displayErrorMessageToUser("Ocorreu um erro ao atualizar o registro");
            e.printStackTrace();
		}
	}

Sem analisar melhor não sei te dizer, mas posso sugerir vc usar o OmniFaces, eles tem alguns componentes utulitários pra ajudar no lado server-side, inclusive um pra mensagens, da uma olhada aqui: http://showcase.omnifaces.org/utils/Messages.

[quote=mario.fts]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.
[/quote]

Como diria Anakin Skywalker… It´s working!!!

Mas…estou tomando o erro abaixo quando termina o acesso ao EM.

2014-10-10 13:20:26 ERROR Bean:192 - WELD-000019: Error destroying an instance org.hibernate.ejb.EntityManagerImpl@33c78ee3 of Producer Method [EntityManager] with qualifiers [@Any @Default] declared as [[BackedAnnotatedMethod] @Produces @RequestScoped public static br.com.snclavalinmarte.portal.dao.JPAUtil.getEntityManager()]

deu erro pra fechar o EM,ve qual foi e exception que deu, provavelmente vc fechou o em em algum lugar do código.

Achei o problema!!! Na verdade os problemas. O primeiro foi que estavam sim fechado o EM dentro do meu GenericDAO quando fazia uma operação (CRUD). Ai removei e deixei o em.close() do produtor de EM, mas ai o problema aparecia no logout do usuário, pois eu invalidava a session. Agora está tudo bem. Vou criar um interceptador de transação no nível de serviço e este interceptador é que terá a responsabilidade de abrir a transação, “comitar” e depois fechar o EM. Mãos a obra!!!

Abraços!!!

Pessoal

vocês deram todos esses exemplos e até funcionou aqui, mas é obrigatório usar DAO genérico??
E se eu quiser um DAO específico que extende um generico?

[quote=tiagoemerick]Pessoal

vocês deram todos esses exemplos e até funcionou aqui, mas é obrigatório usar DAO genérico??
E se eu quiser um DAO específico que extende um generico?[/quote]

Tiago,

 Pode sim com certeza. Eu acabei convertendo toda a aplicação para EJB, pois os ganhos com o servidor de aplicações valeram, controle de transação, log, open view in session, etc. Com isso acabei usando o DAOGeneric e cada entidade minha tem um DAO que estende este DAOGeneric e adiciona comportamentos específicos da entidade. A solução que descrevi acima me pareceu simples no primeiro momento, mas ai comecei a ter problemas com os comportamentos específicos de cada entidade, ai aliado a isso e mais outros pontos, resolvi converter tudo para EJB 3.1 "empacotado" em WAR.

Abraços.

Fala pessoal? eu queria saber como que faria para não utilizar a classe concreta no @inject

// assim tem mto acoplamento com a DAO neh não
@Inject
private DAO produtos;

Eu queria usar alguma interface IDAO, e fazer o DAO implementar essa interface, pra usar algo tipo

@Inject
private IDAO produtos;

mas ele num reconhece de jeito maneira? ele vê o IDAO mas não vai atrás do DAO. dá aquele erro de ?Unsatisfied dependencies for type?

Your comment is awaiting moderation.