para descargar java jdbc osgi openjpa aries

descargar - mysql connector java 5.1 6 bin jar



OpenJPA en OSGi no encuentra el paquete conector JDBC de MySQL (3)

Actualmente estoy trabajando en un proyecto OSGi en Felix (v4.0.3). Necesito usar JPA, así que instalé los paquetes Apache Aries JPA. También instalé OpenJPA y lo necesito para conectarme a una base de datos MySQL, usando el paquete conector de MySQL. Desafortunadamente no funciona, OpenJPA dice que no puede encontrar la clase MySQL JDBC y no puedo entender qué está roto, tal vez estoy haciendo algo mal. Explicaré a continuación lo que instalé precisamente junto con el archivo persistence.xml y la excepción real que recibo.

Aquí está la lista de los paquetes de Apache Aries que instalé:

  1. org.apache.aries.jpa.api-0.3.jar
  2. org.apache.aries.jpa.container.context-0.3.jar
  3. org.apache.aries.jpa.container-0.3.jar
  4. org.apache.aries.util-0.4.jar

Luego instalé las dependencias de esos paquetes Apache Aries JPA. Los descargué de Springsource:

  1. com.springsource.javax.transaction-1.1.0.jar
  2. com.springsource.org.apache.log4j-1.2.16.jar
  3. com.springsource.slf4j.api-1.6.1.jar
  4. com.springsource.slf4j.log4j-1.6.1.jar
  5. javax.persistence_2.0.4.v201112161009.jar (este es de EclipseLink en caso de que importe)

También instalé OpenJPA y todas sus dependencias. Encontré los paquetes 2 a 5 (commons- *) en la carpeta lib de la carpeta apache-openjpa-2.2.0 . Descargué Serp aquí porque el archivo jar que se encuentra en la carpeta lib no era un paquete OSGi. Finalmente encontré los últimos dos paquetes (# 7 y # 8) en Springsource:

  1. openjpa-2.2.0.jar
  2. commons-collections-3.2.1.jar
  3. commons-dbcp-1.4.jar
  4. commons-lang-2.4.jar
  5. commons-pool-1.5.4.jar
  6. org.apache.servicemix.bundles.serp-1.13.1_4.jar
  7. com.springsource.javax.servlet-2.5.0.jar
  8. com.springsource.org.objectweb.asm-3.2.0.jar

Una vez que finalmente tuve instalado OpenJPA, aún necesitaba el paquete de controladores JDBC de MySQL, que también obtuve del repositorio de Springsource junto con su dependencia de registro de recursos comunes:

  1. com.springsource.com.mysql.jdbc-5.1.6.jar
  2. com.springsource.org.apache.commons.logging-1.1.1.jar

Ahora, en este punto, la lista de paquetes instalados se está volviendo bastante grande. Dije que instalé OpenJPA, pero es solo porque no pude entender cómo usar cualquier otro proveedor con Aries. Inicialmente quise usar EclipseLink pero aparentemente Apache Aries no lo detecta como proveedor y de acuerdo con este blog tienes que crear otro paquete que contenga tu propio activador para que Aries detecte EclipseLink. Lo intenté pero no funcionó, así que recurrí al uso de OpenJPA.

Entonces ahora tengo dos preguntas:

  • ¿Cómo puedo hacer que OpenJPA note mi paquete de MySQL?

O alternativamente :

  • ¿Cómo puedo hacer que Apache Aries note EclipseLink?

Aquí está el archivo persistence.xml que uso:

<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="userManager.model" transaction-type="RESOURCE_LOCAL"> <provider>org.apache.openjpa.persistence.PersistenceProviderImpl</provider> <class>org.project.dao.entity.UserEntity</class> <properties> <property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver" /> <property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost:3306/usermanager?autoReconnect=true" /> <property name="openjpa.ConnectionUserName" value="root" /> <property name="openjpa.ConnectionPassword" value="root" /> </properties> </persistence-unit> </persistence>

El error ocurre cuando se ejecuta el siguiente Constructor de mi clase DAO:

@PersistenceContext(unitName="userManager.model") private EntityManager em; private EntityManagerFactory emf; public UserDAOBean() { em = emf.createEntityManager(); }

Aquí está el error que recibo con OpenJPA al no encontrar MySQL. Por supuesto, vale la pena mencionar que tanto la URL como el nombre de usuario / contraseña funcionan:

<openjpa-2.2.0-r422266:1244990 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-2.2.0-r422266:1244990 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "com.mysql.jdbc.Driver" and URL "jdbc:mysql://localhost:3306/usermanager?autoReconnect=true". You may have specified an invalid URL. at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255) at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:123) at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.createConnectionFactory(JDBCConfigurationImpl.java:844) at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:732) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.openjpa.lib.conf.ConfigurationImpl.instantiateAll(ConfigurationImpl.java:295) at org.apache.openjpa.conf.OpenJPAConfigurationImpl.instantiateAll(OpenJPAConfigurationImpl.java:1671) at org.apache.openjpa.kernel.AbstractBrokerFactory.makeReadOnly(AbstractBrokerFactory.java:646) at org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:203) at org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:154) at org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60) at org.apache.aries.jpa.container.impl.CountingEntityManagerFactory.createEntityManager(CountingEntityManagerFactory.java:64) at javax.persistence.EntityManagerFactory$$Proxy.createEntityManager(Unknown Source)

Corté la excepción (sigue y sigue) hasta este punto:

Caused by: java.lang.ClassNotFoundException: com.mysql.jdbc.Driver not found by org.apache.openjpa [12] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1460) at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72) at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.apache.openjpa.jdbc.schema.DataSourceFactory.newDataSource(DataSourceFactory.java:85) ... 108 more

PD: No pude publicar los enlaces a Aries, OpenJPA o EclipseLink debido a la restricción de spam, lo siento: /


Gracias a Holly Cummins y después de otro montón de horas de investigación, he podido encontrar una solución a mi problema. Lo detallaré a continuación, esta será una respuesta muy larga .

Si desea utilizar EclipseLink con Apache Aries (que me parece más fácil de instalar en órdenes de magnitud que OpenJPA para OSGi porque está incluido en solo 5 paquetes), tendrá que pagar el adaptador EclipseLink - Aries directamente desde apache porque no ha sido procesado. lanzado aún.

Vaya a una carpeta apropiada y ejecute el siguiente comando para obtenerla:

svn checkout https://svn.apache.org/repos/asf/aries/trunk/jpa/jpa-container-eclipselink-adapter/

Debería obtener una carpeta llamada jpa-container-eclipselink-adapter . Ahora, suponiendo que está utilizando Linux y tiene instalado Maven, ejecute los siguientes comandos:

cd jpa-container-eclipselink-adapter mvn clean install

Una vez que Maven compiló con éxito el origen del adaptador, lo encontrará en su repositorio Maven utilizando la ruta

<maven-repo>/org/apache/aries/jpa/org.apache.aries.jpa.eclipselink.adapter/0.3.1-SNAPSHOT/org.apache.aries.jpa.eclipselink.adapter-0.3.1-SNAPSHOT.jar

Tendrá que implementar este paquete con los demás (copiándolo en la carpeta del paquete para Felix).

Así que eso fue para la parte de EclipseLink, ahora para que su persistencia realmente funcione, tendrá que usar Blueprint con Aries. Aquí está la lista de todos los paquetes que deberá obtener de la [http://aries.apache.org/downloads/currentrelease.html](pagina de descarga de Aries de Apache]

  1. org.apache.aries.blueprint
  2. org.apache.aries.proxy
  3. org.apache.aries.jndi.api
  4. org.apache.aries.jndi
  5. org.apache.aries.blueprint
  6. org.apache.aries.jpa.api
  7. org.apache.aries.jpa.container.context
  8. org.apache.aries.jpa.container
  9. org.apache.aries.transaction.blueprint
  10. org.apache.aries.transaction.manager (Este aparece dos veces en su sitio, es solo un duplicado)
  11. org.apache.aries.util

Una vez que haya terminado de descargar Aries, aún necesita dependencias (obténgalos de SpringSource). Estos son los paquetes para SLF4J, Log4J, SLF4J Log4J Binding y javax.transaction 1.1 API.

  1. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.slf4j.api&version=1.6.1
  2. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.slf4j.log4j&version=1.6.1
  3. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.javax.transaction&version=1.1.0
  4. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.org.apache.log4j&version=1.2.16

También necesitará los paquetes de EclipseLink (necesita la versión del paquete OSGi)

http://www.eclipse.org/eclipselink/downloads/

Abra el archivo zip y obtenga los siguientes archivos:

  1. org.eclipse.persistence.antlr
  2. org.eclipse.persistence.asm
  3. org.eclipse.persistence.core
  4. org.eclipse.persistence.jpa
  5. javax.persistence

Finalmente, suponiendo que quiera utilizar una base de datos MySQL, necesitará los paquetes para el controlador JDBC de MySQL (descargado de Springsource)

  1. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.com.mysql.jdbc&version=5.1.6
  2. http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.org.apache.commons.logging&version=1.1.1

Una vez que tenga todos los paquetes instalados, necesita usar un origen de datos no jta que obtendrá a través de JNDI. Aquí hay un archivo persistence.xml que puede cambiar según sus necesidades:

<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd" version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"> <persistence-unit name="userManager" transaction-type="RESOURCE_LOCAL"> <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider> <non-jta-data-source>osgi:service/javax.sql.DataSource/(osgi.jndi.service.name=jdbc/userManagerDS)</non-jta-data-source> <class>com.example.dao.entity.UserEntity</class> <exclude-unlisted-classes>true</exclude-unlisted-classes> <properties> <!-- EclipseLink should create the database schema automatically --> <!-- <property name="eclipselink.ddl-generation" value="create-tables" /> <property name="eclipselink.ddl-generation.output-mode" value="database" /> --> </properties> </persistence-unit> </persistence>

Consulte javax.sql.Datasource en la etiqueta non-jta-data-source? Eso es lo que definiremos usando Blueprint xml. Para hacerlo, primero deberá agregar el OSGI-INF / blueprint / carpetas en su paquete de persistencia (el que contiene sus DAO y Entidades). Esta es la carpeta predeterminada donde se encuentran los archivos blueprint blueprint, se escaneará cualquier archivo xml que se encuentre aquí. Una vez hecho esto, cree el archivo blueprint.xml (el nombre se puede cambiar) y pegue (y modifique) el siguiente código:

<bean id="dataSource" class="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"> <property name="url" value="jdbc:mysql://localhost:3306/usermanager?autoReconnect=true" /> <property name="user" value="root" /> <property name="password" value="root" /> </bean> <service id="MySQLDataSource" interface="javax.sql.DataSource" ref="dataSource"> <service-properties> <entry key="osgi.jndi.service.name" value="jdbc/userManagerDS" /> </service-properties> </service> <service id="userDAOService" interface="com.example.dao.remote.UserDAORemote"> <bean class="com.example.dao.beans.UserDAOBean"> <jpa:unit index="0" unitname="userManager" /> </bean> </service> </blueprint>

Aquí, estamos haciendo dos cosas. Primero, le decimos a Aries que cree el origen de datos userManagerDS y que lo configure con el controlador JDBC, la URL, el usuario y la contraseña. Esta es la misma fuente de datos que usamos en el archivo persistence.xml .

Luego, inyectamos EntityManagerFactory en nuestro DAO. Nuestro DAO es la clase com.example.dao.beans.UserDAOBean , debemos agregar su nombre a la etiqueta bean . Esta clase tendrá que implementar una interfaz y necesitaremos agregar esta interfaz a la etiqueta de servicio . Ahora la etiqueta jpa: unit final le dice a Aries que inyecte EntityManagerFactory relacionado con la unidad de persistencia llamada userManager (el mismo nombre que usamos en persistence.xml) usando el primer constructor de UserDAOBean. Esto se hace usando el atributo index = "0". Esto también significa que debe tener algún código como el siguiente en su DAO:

private EntityManager em; private EntityManagerFactory emf; public UserDAOBean(EntityManagerFactory emf) { this.emf = emf; this.em = emf.createEntityManager(); }

También es posible inyectar el EMF usando un setter. Aquí hay más recursos para ayudarlo a usar Blueprint:

Opcional : tenga cuidado, si está utilizando Felix, agregar el paquete javax.transaction provocará una "violación de restricciones de uso" porque el paquete del sistema (paquete 0) también exporta esta API. Deberá evitar exportarlo cambiando la siguiente línea en config.properties :

#org.osgi.framework.system.packages=

Tendrá que poner aquí la lista de todos los paquetes que exportó el paquete anterior. Lamentablemente, no hay forma de "eliminar" un paquete, debe redefinir toda la lista de paquetes que se exportarán. Aquí está el mío, espero que ayude (sí, es muy, muy largo):

org.osgi.framework.system.packages=org.osgi.framework;version=1.6.0, org.osgi.framework.launch;version=1.0.0, org.osgi.framework.wiring;version=1.0.0, org.osgi.framework.startlevel;version=1.0.0, org.osgi.framework.hooks.bundle;version=1.0.0, org.osgi.framework.hooks.resolver;version=1.0.0, org.osgi.framework.hooks.service;version=1.1.0, org.osgi.framework.hooks.weaving;version=1.0.0, org.osgi.service.packageadmin;version=1.2.0, org.osgi.service.startlevel;version=1.1.0, org.osgi.service.url;version=1.0.0, org.osgi.util.tracker;version=1.5.0, javax.accessibility;version=0.0.0.1_006_JavaSE, javax.activation;version=0.0.0.1_006_JavaSE, javax.activity;version=0.0.0.1_006_JavaSE, javax.annotation.processing;version=0.0.0.1_006_JavaSE, javax.annotation;version=0.0.0.1_006_JavaSE, javax.crypto.interfaces;version=0.0.0.1_006_JavaSE, javax.crypto.spec;version=0.0.0.1_006_JavaSE, javax.crypto;version=0.0.0.1_006_JavaSE, javax.imageio.event;version=0.0.0.1_006_JavaSE, javax.imageio.metadata;version=0.0.0.1_006_JavaSE, javax.imageio.plugins.bmp;version=0.0.0.1_006_JavaSE, javax.imageio.plugins.jpeg;version=0.0.0.1_006_JavaSE, javax.imageio.spi;version=0.0.0.1_006_JavaSE, javax.imageio.stream;version=0.0.0.1_006_JavaSE, javax.imageio;version=0.0.0.1_006_JavaSE, javax.jws.soap;version=0.0.0.1_006_JavaSE, javax.jws;version=0.0.0.1_006_JavaSE, javax.lang.model.element;version=0.0.0.1_006_JavaSE, javax.lang.model.type;version=0.0.0.1_006_JavaSE, javax.lang.model.util;version=0.0.0.1_006_JavaSE, javax.lang.model;version=0.0.0.1_006_JavaSE, javax.management.loading;version=0.0.0.1_006_JavaSE, javax.management.modelmbean;version=0.0.0.1_006_JavaSE, javax.management.monitor;version=0.0.0.1_006_JavaSE, javax.management.openmbean;version=0.0.0.1_006_JavaSE, javax.management.relation;version=0.0.0.1_006_JavaSE, javax.management.remote.rmi;version=0.0.0.1_006_JavaSE, javax.management.remote;version=0.0.0.1_006_JavaSE, javax.management.timer;version=0.0.0.1_006_JavaSE, javax.management;version=0.0.0.1_006_JavaSE, javax.naming.directory;version=0.0.0.1_006_JavaSE, javax.naming.event;version=0.0.0.1_006_JavaSE, javax.naming.ldap;version=0.0.0.1_006_JavaSE, javax.naming.spi;version=0.0.0.1_006_JavaSE, javax.naming;version=0.0.0.1_006_JavaSE, javax.net.ssl;version=0.0.0.1_006_JavaSE, javax.net;version=0.0.0.1_006_JavaSE, javax.print.attribute.standard;version=0.0.0.1_006_JavaSE, javax.print.attribute;version=0.0.0.1_006_JavaSE, javax.print.event;version=0.0.0.1_006_JavaSE, javax.print;version=0.0.0.1_006_JavaSE, javax.rmi.CORBA;version=0.0.0.1_006_JavaSE, javax.rmi.ssl;version=0.0.0.1_006_JavaSE, javax.rmi;version=0.0.0.1_006_JavaSE, javax.script;version=0.0.0.1_006_JavaSE, javax.security.auth.callback;version=0.0.0.1_006_JavaSE, javax.security.auth.kerberos;version=0.0.0.1_006_JavaSE, javax.security.auth.login;version=0.0.0.1_006_JavaSE, javax.security.auth.spi;version=0.0.0.1_006_JavaSE, javax.security.auth.x500;version=0.0.0.1_006_JavaSE, javax.security.auth;version=0.0.0.1_006_JavaSE, javax.security.cert;version=0.0.0.1_006_JavaSE, javax.security.sasl;version=0.0.0.1_006_JavaSE, javax.sound.midi.spi;version=0.0.0.1_006_JavaSE, javax.sound.midi;version=0.0.0.1_006_JavaSE, javax.sound.sampled.spi;version=0.0.0.1_006_JavaSE, javax.sound.sampled;version=0.0.0.1_006_JavaSE, javax.sql.rowset.serial;version=0.0.0.1_006_JavaSE, javax.sql.rowset.spi;version=0.0.0.1_006_JavaSE, javax.sql.rowset;version=0.0.0.1_006_JavaSE, javax.sql;version=0.0.0.1_006_JavaSE, javax.swing.border;version=0.0.0.1_006_JavaSE, javax.swing.colorchooser;version=0.0.0.1_006_JavaSE, javax.swing.event;version=0.0.0.1_006_JavaSE, javax.swing.filechooser;version=0.0.0.1_006_JavaSE, javax.swing.plaf.basic;version=0.0.0.1_006_JavaSE, javax.swing.plaf.metal;version=0.0.0.1_006_JavaSE, javax.swing.plaf.multi;version=0.0.0.1_006_JavaSE, javax.swing.plaf.synth;version=0.0.0.1_006_JavaSE, javax.swing.plaf;version=0.0.0.1_006_JavaSE, javax.swing.table;version=0.0.0.1_006_JavaSE, javax.swing.text.html.parser;version=0.0.0.1_006_JavaSE, javax.swing.text.html;version=0.0.0.1_006_JavaSE, javax.swing.text.rtf;version=0.0.0.1_006_JavaSE, javax.swing.text;version=0.0.0.1_006_JavaSE, javax.swing.tree;version=0.0.0.1_006_JavaSE, javax.swing.undo;version=0.0.0.1_006_JavaSE, javax.swing;version=0.0.0.1_006_JavaSE, javax.tools;version=0.0.0.1_006_JavaSE, javax.transaction.xa;version=0.0.0.1_006_JavaSE, javax.transaction;version=0.0.0.1_006_JavaSE, javax.xml.bind.annotation.adapters;version=0.0.0.1_006_JavaSE, javax.xml.bind.annotation;version=0.0.0.1_006_JavaSE, javax.xml.bind.attachment;version=0.0.0.1_006_JavaSE, javax.xml.bind.helpers;version=0.0.0.1_006_JavaSE, javax.xml.bind.util;version=0.0.0.1_006_JavaSE, javax.xml.bind;version=0.0.0.1_006_JavaSE, javax.xml.crypto.dom;version=0.0.0.1_006_JavaSE, javax.xml.crypto.dsig.dom;version=0.0.0.1_006_JavaSE, javax.xml.crypto.dsig.keyinfo;version=0.0.0.1_006_JavaSE, javax.xml.crypto.dsig.spec;version=0.0.0.1_006_JavaSE, javax.xml.crypto.dsig;version=0.0.0.1_006_JavaSE, javax.xml.crypto;version=0.0.0.1_006_JavaSE, javax.xml.datatype;version=0.0.0.1_006_JavaSE, javax.xml.namespace;version=0.0.0.1_006_JavaSE, javax.xml.parsers;version=0.0.0.1_006_JavaSE, javax.xml.soap;version=0.0.0.1_006_JavaSE, javax.xml.stream.events;version=0.0.0.1_006_JavaSE, javax.xml.stream.util;version=0.0.0.1_006_JavaSE, javax.xml.stream;version=0.0.0.1_006_JavaSE, javax.xml.transform.dom;version=0.0.0.1_006_JavaSE, javax.xml.transform.sax;version=0.0.0.1_006_JavaSE, javax.xml.transform.stax;version=0.0.0.1_006_JavaSE, javax.xml.transform.stream;version=0.0.0.1_006_JavaSE, javax.xml.transform;version=0.0.0.1_006_JavaSE, javax.xml.validation;version=0.0.0.1_006_JavaSE, javax.xml.ws.handler.soap;version=0.0.0.1_006_JavaSE, javax.xml.ws.handler;version=0.0.0.1_006_JavaSE, javax.xml.ws.http;version=0.0.0.1_006_JavaSE, javax.xml.ws.soap;version=0.0.0.1_006_JavaSE, javax.xml.ws.spi;version=0.0.0.1_006_JavaSE, javax.xml.ws.wsaddressing;version=0.0.0.1_006_JavaSE, javax.xml.ws;version=0.0.0.1_006_JavaSE, javax.xml.xpath;version=0.0.0.1_006_JavaSE, javax.xml;version=0.0.0.1_006_JavaSE, org.ietf.jgss;version=0.0.0.1_006_JavaSE, org.omg.CORBA.DynAnyPackage;version=0.0.0.1_006_JavaSE, org.omg.CORBA.ORBPackage;version=0.0.0.1_006_JavaSE, org.omg.CORBA.TypeCodePackage;version=0.0.0.1_006_JavaSE, org.omg.CORBA.portable;version=0.0.0.1_006_JavaSE, org.omg.CORBA;version=0.0.0.1_006_JavaSE, org.omg.CORBA_2_3.portable;version=0.0.0.1_006_JavaSE, org.omg.CORBA_2_3;version=0.0.0.1_006_JavaSE, org.omg.CosNaming.NamingContextExtPackage;version=0.0.0.1_006_JavaSE, org.omg.CosNaming.NamingContextPackage;version=0.0.0.1_006_JavaSE, org.omg.CosNaming;version=0.0.0.1_006_JavaSE, org.omg.Dynamic;version=0.0.0.1_006_JavaSE, org.omg.DynamicAny.DynAnyFactoryPackage;version=0.0.0.1_006_JavaSE, org.omg.DynamicAny.DynAnyPackage;version=0.0.0.1_006_JavaSE, org.omg.DynamicAny;version=0.0.0.1_006_JavaSE, org.omg.IOP.CodecFactoryPackage;version=0.0.0.1_006_JavaSE, org.omg.IOP.CodecPackage;version=0.0.0.1_006_JavaSE, org.omg.IOP;version=0.0.0.1_006_JavaSE, org.omg.Messaging;version=0.0.0.1_006_JavaSE, org.omg.PortableInterceptor.ORBInitInfoPackage;version=0.0.0.1_006_JavaSE, org.omg.PortableInterceptor;version=0.0.0.1_006_JavaSE, org.omg.PortableServer.CurrentPackage;version=0.0.0.1_006_JavaSE, org.omg.PortableServer.POAManagerPackage;version=0.0.0.1_006_JavaSE, org.omg.PortableServer.POAPackage;version=0.0.0.1_006_JavaSE, org.omg.PortableServer.ServantLocatorPackage;version=0.0.0.1_006_JavaSE, org.omg.PortableServer.portable;version=0.0.0.1_006_JavaSE, org.omg.PortableServer;version=0.0.0.1_006_JavaSE, org.omg.SendingContext;version=0.0.0.1_006_JavaSE, org.omg.stub.java.rmi;version=0.0.0.1_006_JavaSE, org.w3c.dom.bootstrap;version=0.0.0.1_006_JavaSE, org.w3c.dom.events;version=0.0.0.1_006_JavaSE, org.w3c.dom.ls;version=0.0.0.1_006_JavaSE, org.w3c.dom;version=0.0.0.1_006_JavaSE, org.xml.sax.ext;version=0.0.0.1_006_JavaSE, org.xml.sax.helpers;version=0.0.0.1_006_JavaSE, org.xml.sax;version=0.0.0.1_006_JavaSE


Puede que tenga mejor suerte utilizando un origen de datos JNDI en lugar de una conexión jdbc directa. El ejemplo del blog Aries tiene un paquete de blog.datasource que registra un origen de datos usando Blueprint. La lista de paquetes necesarios es más larga que la que tiene actualmente, pero puede copiarlos todos desde el directorio de ensamblaje de blog / destino o pom.xml.

Alternativamente, Aries tiene un org.apache.aries.jpa.eclipselink.adapter que hace lo mismo que el artículo al que se ha vinculado. Aries lo usa para probar contra EclipseLink, por lo que definitivamente debería funcionar. También puede consultar las pruebas de Aries para ver cómo se usa y ver si hay una prueba de EclipseLink que puede copiar.


Las cosas pueden ser más fáciles si utilizas el plugin gemini blueprint dbAccess ( http://www.eclipse.org/gemini/dbaccess/ ), que creo que también funcionará para Aries. Para MySQL, asegúrese de incluir el complemento del conector (por ejemplo, http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.com.mysql.jdbc&version=5.1.6 ). Esto debería ser suficiente para poner la base de datos en funcionamiento, siempre que el blueprint.xml (para usar el ejemplo anterior) esté configurado correctamente, como se indicó anteriormente.