martes, 27 de mayo de 2008

Inyectar un bean en otro bean con Annotations

Ejemplo de una inyección

@In(create=true)
AdminDireccionController adminDireccionController;

Ejemplo de otra forma de inyección:


@In(value = "#{adminDireccionController}")
private AdminDireccionController adminDireccionController;

Un caso práctico:

Cuando intente inyectar un bean en otro me daba un error:

ERROR org.jboss.seam.jsf.SeamPhaseListener.beforePhase(120) - uncaught exception
javax.el.ELException: javax.el.ELException: org.jboss.seam.NoConversationException: no long-running conversation for @Conversational bean: adminTerceroController

Tuve que poner en el controller1 que voy a inyectar la anotación @Begin en el primer método que utilizaba el otro controller2 ya que mi controler1 era de ámbito conversation para que se inicie la longrunnigconversation