Manual CDI não encontra o Bean

Java

19/04/2017

Context :

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/Mobile">
    <!-- disables storage of sessions across restarts --> 
    <Manager pathname=""/>
    <Resource name="BeanManager" auth="Container" 
        type="javax.enterprise.inject.spi.BeanManager" 
        factory="org.jboss.weld.resources.ManagerObjectFactory"/>
</Context>

web.xml

  <listener>
    <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class>
  </listener>
  <resource-env-ref>
    <resource-env-ref-name>BeanManager</resource-env-ref-name>
    <resource-env-ref-type>javax.enterprise.inject.spi.BeanManager</resource-env-ref-type>
  </resource-env-ref>
  
 Dependencias :
 
 <!-- Weld (implementação do CDI) -->
<dependency>
	<groupId>org.jboss.weld.servlet</groupId>
	<artifactId>weld-servlet</artifactId>
	<version>1.1.10.Final</version>
	<scope>compile</scope>
</dependency>

classe 

Metodos Manual CDI:

private static BeanManager getBeanManager() {
		try {
			InitialContext initialContext = new InitialContext();
			return (BeanManager) initialContext.lookup("java:comp/env/BeanManager");
		} catch (NamingException e) {
			throw new RuntimeException("Não pôde encontrar BeanManager no JNDI.");
		}
	}

	@SuppressWarnings("unchecked")
	public static <T> T getBean(Class<T> clazz) {
		BeanManager bm = getBeanManager();
		Set<Bean<?>> beans = (Set<Bean<?>>) bm.getBeans(clazz);

		if (beans == null || beans.isEmpty()) {
			return null;
		}

		Bean<T> bean = (Bean<T>) beans.iterator().next();

		CreationalContext<T> ctx = bm.createCreationalContext(bean);
		T o = (T) bm.getReference(bean, clazz, ctx);

		return o;
	}
John Lima

John Lima

Curtidas 0
POSTAR