style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Error inexplicable Enterprise Application

Buen día comunidad.

Estoy en medio de aprendizaje con JSF, EJB y JPA. Vamos, aprendiendo Java EE 5 para un proyecto en el que se me asignará dentro de poco.

Resulta que en este mundo de Java EE tengo un clásico proyecto creado con Maven en donde tienes un proyecto padre y tres proyectos hijos, uno que contiene el EAR, otro que contiene el jar de EJB y otro que contiene el WAR.

Ya hice unos beans de sesión, etc, todo bien. Con las bondades de "click-oriented programming" que ofrece NetBeans pues ya invoco desde la aplicación web a los beans de sesión, todo bien. Configuré mi persistence.xml de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence <a href="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
" title="http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
">http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
</a>  <persistence-unit name="test_pu" transaction-type="JTA">
    <jta-data-source>jdbc/test</jta-data-source>
    <exclude-unlisted-classes>false</exclude-unlisted-classes>
    <properties/>
  </persistence-unit>
</persistence>

Luego, tengo en mi bean de sesión lo siguiente:

@PersistenceContext(unitName = "test_pu")
  private EntityManager em;

Al dar click para ejecutar el proyecto me sale la siguiente excepción:
java.lang.RuntimeException: The persistence-context-ref-name [mx.com.pruebas.ejb.EntFacade/em] in module [pruebas-ear-1.0-SNAPSHOT#pruebas-web-1.0-SNAPSHOT.war] resolves to a persistence unit called [mx.com.pruebas.persistence_unit] which is of type RESOURCE_LOCAL. Only persistence units with transaction type JTA can be used as a container managed entity manager. Please verify your application.

¿A qué se debe?

En mi configuración
1) Ni tengo declarada mi unidad de persistencia cómo un recurso local
2) Ni tampoco hago referencia a "mx.com.pruebas.persistence_unit"

0_o

Espero me puedan ayudar, desde ya, muchas gracias.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de neko069

Alguna otra aplicación que

Alguna otra aplicación que esté corriendo en el mismo servidor?
El detalle está en que te marca una excepción en código de algún ejemplo, el package no es de ninguna biblioteca (mx.com.pruebas)
Checa las configuraciones de data source desde la consola de administrador de tu server, y checa que no haya otros wars desplegados, puede ser por ése lado.

Ninguna otra aplicación

Para esta prueba he estado utilizando un servidor desde 0, lo único que tiene desplegado son las librerías para que funcione con jsf2. Fuera de eso no sé.

Respecto a wars, pues los únicos son las dependencias que weblogic necesita para entender jsf y demás. Fuera de eso no hay ninguna otra aplicación ni war.

Imagen de neko069

Ejemplo

Podrías postear un ejemplo de un flujo sencillo, no sé, una inserción, o un borrado, tu managed bean, ejb y dao que consume tu unidad de persistencia?

Re: Ejemplo

//ManagedBean

@ManagedBean
@ResquestedScope
public class EjemploBean{

--@EJB
--EjemploEJB ejemploEJB;

--public EjemploBean(){}

--public void insertaCosa(String cosa){
----ejemploEJB.create(cosa);
--}
}

//EJB
@Stateless
public class EntFacade implements EntFacadeLocal{

--@PersistenceContext(unitName = "test_pu")
--private EntityManager em;

--public void create(String cosa){
----em.getTransaction().begin();
----MiObjeto mo = new MiObjeto();
----mo.setCosa(cosa);
----em.persist(mo);
----em.getTransaction().commit();
--}
}

Edición: No utilizo DAO para fin práctico de la prueba.

Desde ya, gracias.

Imagen de neko069

No se me ocurre nada, excepto

No se me ocurre nada, excepto que hagas la prueba en otro application server distinto al que estás usando (si estás usando glassfish, usa jboss u otro), si es uno recién instalado, mejor, así te aseguras que sólo estás trabajando con tu ejemplo, y sólo con tu data source.

Re: No se me ocurre nada, excepto

Mudado de weblogic a glassfish, mismo error... De verdad que cada vez veo menos argumentos para justificar el uso de Java EE para desarrollos serios y rápidos. En fin le seguiré buscando.

Imagen de neko069

DataSource

Jaj.. no te encabrites, verás que es un detalle que se debió de pasar por alto, veamos...

Veo que tienes algo como:

<jta-data-source>jdbc/test</jta-data-source>

Intenta con:

    <jta-data-source>java:/test</jta-data-source>

¿Podrías además mostrar la configuración del data source?

Re: DataSource

Nah, no estoy enojado y mucho menos contigo que me has tratado de apoyar. Simplemente me frustra, ahora recuerdo porqué en casi todos los proyectos donde yo elegía tecnologías jamás me decantaba por Java EE :p

La configuración del data source... pues cómo nos piden hacer todo a través de NetBeans, la registré ahí, ¿la tengo que registrar en glassfish?

Imagen de neko069

Ahí si te fallo, nunca he

Ahí si te fallo, nunca he trabajado en netbeans, peeeero, nunca he configurado ningún datasource desde el IDE, siempre directo en los xml del servidor; o bien colocando las propiedades directo en el xml de la unidad de persistencia (que varía dependiendo si usas Hibernate, Batoo o EclipseLink por mencionar ejemplos) No sé hasta qué punto pudiera ser eso. Igual podrías intentarlo también.

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">