2012-08-08 9 views
7

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.OpenJPA en OSGi no encuentra el paquete conector de MySQL JDBC

Aquí está la lista de los paquetes Apache Aries he instalado:

  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 instalado las dependencias de los Apache Aries JPA manojos. Les descargado 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 (éste es de EclipseLink en caso de que importa)

Yo también i nstalled OpenJPA y todas sus dependencias. Encontré paquetes 2 a 5 (commons- *) en la carpeta lib de la carpeta descargada apache-openjpa-2.2.0. Descargué Serp here porque el jar que se encuentra en la carpeta lib no era un paquete OSGi. Finalmente encontré a los dos últimos 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-piscina-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 había instalado OpenJPA, todavía necesita el paquete del controlador JDBC de MySQL, que también me dieron desde el repositorio SpringSource junto con su commons-logging dependencia:

  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 es cada vez más 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 this blog tiene que crear otro paquete que contenga su propio activador para que Aries detecte EclipseLink. Lo intenté pero no funcionó, así que recurrí al uso de OpenJPA.

así que ahora tengo dos preguntas:

  • ¿Cómo puedo hacer mi OpenJPA aviso MySQL Bundle?

o alternativamente:

  • Cómo puedo hacer que Apache Aries cuenta EclipseLink?

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

<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 se produce 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 consigo con OpenJPA no encontrando MySQL. Por supuesto, es importante mencionar que tanto la URL y el nombre de usuario/contraseña de hacer el trabajo:

<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) 

He cortado la excepción (que sigue pasando una y otra vez), 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:/

Respuesta

4

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 va a ser una respuesta muy larga.

Si desea utilizar EclipseLink con Apache Aries (que me parece órdenes de magnitud más fácil de instalar que OpenJPA para OSGi porque se encuentra en sólo 5 paquetes), tendrá a la caja de la EclipseLink - adaptador de Aries directamente desde apache porque todavía no se ha lanzado.

Ir a una carpeta adecuada y ejecutar el siguiente comando para conseguirlo:

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

usted debe conseguir una carpeta con el nombre JPA-contenedor-EclipseLink adaptador. Ahora, suponiendo que está utilizando Linux y ha instalado Maven, ejecute los siguientes comandos:

cd jpa-container-eclipselink-adapter 
mvn clean install 

Una vez Maven ha compilado correctamente la fuente 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).

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

  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 (éste aparece dos veces en su sitio, es sólo un duplicado)
  11. org.apache.aries.util

una vez que haya terminado la descarga de Aries, que aún necesita dependencias (obtenerlos 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 debes cumplir los haces de EclipseLink (se necesita la versión OSGi paquete)

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

Abra la cremallera y obtener 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

Por último, suponiendo que desea utilizar una base de datos MySQL, necesitará la 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 utilizar un no-jta-datasource que obtendrá a través de JNDI. Aquí hay un archivo persistence.xml que puede cambiar para 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> 

Véase el javax.sql.Datasource en la etiqueta no JTA-datos-fuente? Eso es lo que definiremos usando Blueprint xml. Para hacerlo, primero deberá agregar las carpetas OSGI-INF/blueprint/ 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 deblueprint.xml (el nombre se puede cambiar) y pegar (y modificar) 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 la fuente de datos userManagerDS y la 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 del servicio. Ahora la etiqueta final jpa: unidad le dice a Aries que inyecte EntityManagerFactory relacionado con la unidad de persistencia llamada userManager (el mismo nombre que usamos en persistence.xml) utilizando el primer constructor de UserDAOBean. Esto se hace usando el atributo index = "0". Esto también significa que usted tiene que 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 la FEM usando un regulador.Aquí hay más recursos para ayudarle a utilizar Blueprint:

Opcional: Tenga cuidado, si está utilizando Felix, añadiendo el paquete javax.transaction causará una "violación de restricción de uso" porque el paquete de sistema (paquete 0) también exporta esta API. Que tendrá que evitar que se exportarlo cambiando la línea siguiente en las config.properties:

#org.osgi.framework.system.packages= 

Vas a tener que poner aquí la lista de todos los los paquetes que el paquete anterior exportado. Lamentablemente, no hay forma de "eliminar" un paquete, debe redefinir toda la lista de paquetes que se exportarán. Esta es la mía, 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 
2

Puede tener mejor suerte al usar un origen de datos JNDI en lugar de una conexión jdbc directa. El Aries blog sample 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.

0

Las cosas pueden ser más fácil cuando se utiliza el plugin géminis modelo dbAccess (http://www.eclipse.org/gemini/dbaccess/), que creo que va a trabajar para Aries también. 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.

Cuestiones relacionadas