Pregunta

Llegué a bordo de un nuevo proyecto con una nueva compañía y estamos tratando de usar JPA para hacer un trabajo de base de datos. Entonces tenemos un Ear con un EJB, un servicio web, y luego hay un cliente de aplicación en el oído que realmente hace todo el trabajo. El servicio web llama al EJB y el EJB llama al cliente para que haga el trabajo de la base de datos. Entonces, dentro del cliente, quiero cargar un EntityManager a través de anotaciones, pero no parece funcionar (em siempre es nulo):

@Entity
public class Whatever...{
    @PersistenceContext(unitName="pu")
    EntityManager em;

}

Entonces pensé que necesitaba cargar el EntityManager en el EJB, pero eso tampoco funcionó, porque parece que JPA no vio las clases de Entity ya que están en el cliente y no en el EJB. ¿Alguien puede darme alguna orientación?

¿Fue útil?

Solución

Este es un mal uso de un cliente de aplicación. Todo su procesamiento de db debe ocurrir en el EJB. No parece haber ninguna razón aparente para la existencia de los clientes de la aplicación.

Este enlace es a un artículo antiguo, pero da ejemplos de para qué se utiliza un cliente de aplicación (Aplicaciones no servicios de backend).

Cliente de aplicación

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top