No quiero utilizar el plugin jpa de Websphere 7 incorporado, sino una aplicación WEB-INF/lib/open-jpa 2 y un proveedor de persistencia patentado. No puedo instalar el paquete de características OSGI y JPA 2 para Websphere.websphere 7 y (basado en aplicaciones) open-jpa 2
Originalmente, estaba obteniendo un error de análisis de sax simplemente tratando de cargar el persistence.xml (versión = "2" no compatible). El error fue lanzado por una clase en open-jpa 1.2.3. Cuando ejecuto websphere/appserver/bin/wsjpaversion.bat, se muestra el archivo jar open-jpa 1.2.3. Por defecto anula el jar abierto-jpa 2 en la aplicación. Creé una biblioteca compartida que contiene el jar abierto-jpa 2 con esta opción de configuración marcada: 'Usar un cargador de clases aislado para esta biblioteca compartida'. Configuré el cargador de clases de mi aplicación para cargar el último padre y le asigné el nuevo recurso de biblioteca compartida. El error 'versión 2' se ha ido, pero hay otro problema. Cuando intento para inicializar un EntityManager consigo un error:
Caused by: javax.persistence.PersistenceException: Failed to load provider from META-INF/services
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:121)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:91)
at java.lang.J9VMInternals.initializeImpl(Native Method)
at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
... 2 more
Caused by: java.lang.ClassCastException: com.ibm.websphere.persistence.PersistenceProviderImpl incompatible with javax.persistence.spi.PersistenceProvider
at javax.persistence.spi.PersistenceProviderResolverHolder$DefaultPersistenceProviderResolver.getPersistenceProviders(PersistenceProviderResolverHolder.java:110)
... 11 more
Un detalle más: dentro de la persistence.xml, el elemento de proveedor se establece en las PersistenceProviderImpl propiedad no es el proveedor de persistencia predeterminado Websphere. Entonces, ¿de dónde viene el valor predeterminado de esta websphere y cómo lo evito? (Otra nota importante: cuando quito persistence.xml por completo, me sale el mismo error)
Gracias
no estoy seguro si esto ayudaría, pero puede cambiar la política del cargador de clases a PARENT_LAST (no se recomienda como predeterminado, pero si se ve obligado a hacerlo) –
Tengo el mismo problema. Alguna solución? –