Un Usuario hizo la siguiente pregunta
Hola:)
busqué en foros de todo tipo, ¡pero no encontré nada!
1. Descargué SAPNW CE7.1 SP1 J2EE solamente.
2. Aplicación WD desarrollada, funciona perfectamente.
3. Intentando probar JPA -> encuentra el mismo error una y otra vez ….
=> Sin proveedor de durabilidad para EntityManager llamado XXX
Lo que he hecho hasta ahora:
3.1 Enlace DB creado con MAXDB:
Servidor: CE1
Esquema: SUPERDBA
Usuario: superdba
Contraseña: ****
3.2 Entidades creadas, una 🙂
3.3 Java Persistence contribuyó al proyecto.
3.4 duration.xml creado:
<?xml version="1.0" encoding="UTF-8"?> <persistence> <persistence-unit name="foo"> <provider>javax.persistence.spi.PersistenceProvider</provider> <jta-data-source>superdba_test</jta-data-source> <class>mycom.demo.entities.WelcomeTest</class> <properties> <property name="com.sap.engine.services.orpersistence.generator.versio ntablename" value="WELCOME_VERSIONGEN" /> </properties> </persistence-unit> </persistence>
3.5 data-sources.xml creado así:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE data-sources SYSTEM "data-sources.dtd" > <data-sources> <data-source> <data-source-name>superdba</data-source-name> <driver-name>SYSTEM_DRIVER</driver-name> <!--<sql-engine>native_sql</sql-engine>--> <sql-engine>vendor_sql</sql-engine> <jdbc-1.x> <driver-class-name>com.sap.dbtech.jdbc.DriverSapDB</driver-class-name> <url>jdbc:sapdb://mungo01/CE1</url> <user-name>superdba</user-name> <password>****</password> </jdbc-1.x> </data-source> </data-sources>
3.6 creación de data-source-aliases.xml
<?xml version="1.0" encoding="UTF-8"?> <data-source-aliases> <aliases> <data-source-name>superdba</data-source-name> <alias>superdba_test</alias> </aliases> </data-source-aliases>
3.7 Ejecutando perseverancia:
... StringBuffer queryTxt = new StringBuffer("SELECT * FROM WelcomeTest"); EntityManager em = null; EntityManagerFactory emf = Persistence.createEntityManagerFactory("foo"); em = emf.createEntityManager(); Query query = em.createQuery(queryTxt.toString()); ...
Estoy desesperado en este punto. ¡Así que cualquier idea es bienvenida! 🙂
buena voluntad
Simón 🙂
4 respuestas
-
Esta respuesta ha sido eliminada.
Esta respuesta no se completó.
Ex miembro
Hola simon
no está utilizando EJB: por eso las notas no funcionan. La especificación EJB 3 establece que deben recibir soporte tanto en el contenedor EJB como en el contenedor web. WD no es un contenedor estándar, es un contenedor patentado.
Creo que el contenedor WD ignora las descripciones persistence.xml, data -ources.xml y data-source-aliases.xml. ¿Por qué no separar la capa de durabilidad y la capa de presentación?
-
Esta respuesta ha sido eliminada.
Esta respuesta no se completó.
Ex miembro
¡Hola, Simon!
Para el entorno Java EE, creo que sería una mejor idea si obtiene el ejemplo de Entity Manager por inyección de dependencia:
@PersistenceUnit EntityManagerFactory emf; EntityManager em = emf.createEntityManager();
Puede ver los documentos oficiales de NW CE 7.1 SP1 en el portal de ayuda de SAP:
http://help.sap.com/saphelp_nwce10/helpdata/en/45/0029b3515224dee10000000a114a6b/frameset.htm
PD: No estoy seguro de si este es el problema exacto que le hizo desesperarse, pero creo que la forma en que inició Entity Manager es más relevante para el entorno Java SE.
¡Espero que esto ayude!
Sobre,
Yordan
-
Esta respuesta ha sido eliminada.
Esta respuesta no se completó.
Ex miembro
Hola simon
Tengo una pregunta sobre el punto 3.7: ¿Este código se ejecuta desde un contenedor EJB? Si esto es cierto, ¿por qué no usar una inyección de dependencia para inyectar el EntityManager?
¿Has mirado en el visor hueco?
-
Esta respuesta ha sido eliminada.
Esta respuesta no se completó.
Hola simon
deberías etiquetar elimine persistence.xml.
El proveedor de durabilidad de SAP está seleccionado de forma predeterminada. Con la etiqueta del proveedor, puede aconsejar al contenedor JPA que utilice un proveedor de durabilidad alternativo (es decir, implementación de JPA) que debería incluirse con la aplicación. Además, «javax.persistence.spi.PersistenceProvider» es solo una interfaz abstracta, por lo que no se puede cargar.
Espero que esto te inspire aún más.
Todo lo mejor,
Adrian