Problem with Stateless bean injection
wankes2000 Feb 3, 2011 6:41 AMHello i have a lot of problem to call a stateless ejb from a seam action components y always obtain bean not bound exception.
Here is mi action code:
package org.domain.tmepgv2.session; import java.util.List; import org.domain.tmepgv2.entity.InputsOutputs; import org.domain.tmepgv2.entity.Pluggin; import org.domain.tmepgv2.helpers.InputMenuBean; import org.domain.tmepgv2.helpers.InputMenuLocal; import org.domain.tmepgv2.ws.WebserviceEpgCoreBean; import org.domain.tmepgv2.ws.WebserviceEpgCoreLocal; import org.jboss.seam.Component; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @Name("inputMenu") public class InputMenu { private Pluggin pluggin; private List<InputsOutputs> lista; /** * @return the lista */ public List<InputsOutputs> getLista() { return lista; } /** * @param lista the lista to set */ public void setLista(List<InputsOutputs> lista) { this.lista = lista; } /** * @return the listaPluggins */ public List<Pluggin> getListaPluggins() { InputMenuLocal action = null; action = (InputMenuLocal) Component.getInstance(InputMenuBean.class); return action.getInputPluggins(); } /** * @param listaPluggins the listaPluggins to set */ public void setListaPluggins(List<Pluggin> listaPluggins) { this.listaPluggins = listaPluggins; } private List<Pluggin> listaPluggins; }
And my bean code:
package org.domain.tmepgv2.helpers; import java.util.ArrayList; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.NoResultException; import org.domain.tmepgv2.entity.InputsOutputs; import org.domain.tmepgv2.entity.Pluggin; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; @Stateless @Name("inputMenuEJB") public class InputMenuBean implements InputMenuLocal { @In EntityManager entityManager; public ArrayList<Pluggin> getInputPluggins() { try { ArrayList<Pluggin> pluggin = (ArrayList<Pluggin>) entityManager.createQuery( "from Pluggin where tipo = :tipo") .setParameter("tipo", 1).getResultList(); return pluggin; } catch (NoResultException e) { return new ArrayList<Pluggin>(); } } public ArrayList<InputsOutputs> getInputs() { try { ArrayList<InputsOutputs> inputs = (ArrayList<InputsOutputs>) entityManager.createQuery( "from InputsOutputs where tipo = :tipo") .setParameter("tipo", 0).getResultList(); return inputs; } catch (NoResultException e) { return new ArrayList<InputsOutputs>(); } } public void filterByPluggin() { // TODO Auto-generated method stub System.out.println("Prueba"); } }
My components.xml is with @jndiPattern@ default configuration and y have a ejb-jar.xml like this:
<?xml version="1.0" encoding="UTF-8"?> <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" version="3.0"> <interceptors> <interceptor> <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class> </interceptor> </interceptors> <assembly-descriptor> <interceptor-binding> <ejb-name>*</ejb-name> <interceptor-class>org.jboss.seam.ejb.SeamInterceptor</interceptor-class> </interceptor-binding> </assembly-descriptor> </ejb-jar>
What is wrong? Sorry about my poor english.