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.