OpenJPA в OSGi не находит MySQL JDBC Connector Bundle

в настоящее время я работаю над проектом OSGi на Felix (v4.0.3). Мне нужно использовать JPA, поэтому я установил пакеты Apache Aries JPA. Я также установил OpenJPA, и мне нужно подключиться к базе данных MySQL, используя пакет MySQL Connector. К сожалению, это не работает, OpenJPA говорит, что не может найти класс MySQL JDBC, и я не могу понять, что сломано, возможно, я делаю что-то неправильно. Я объясню ниже, что я установил точно вместе с настойчивостью.xml-файл и фактический исключение я получаю.

вот список пакетов Apache Aries, которые я установил:

  1. org.апаш.овен.jpa.api-0.3.Джар
  2. org.апаш.овен.jpa.контейнер.контекст-0.3.Джар
  3. org.апаш.овен.jpa.контейнер-0.3.Джар
  4. org.апаш.овен.util-0.4.Джар

затем я установил зависимости этих пакетов Apache Aries JPA. Я загрузил их из Springsource :

  1. com.springsource.класса javax.сделки-1.1.0.Джар
  2. com.springsource.org.apache.log4j-1.2.16.jar
  3. com.springsource.slf4j.АПИ-1.6.1.Джар
  4. com.springsource.slf4j.к log4j-1.6.1.Джар
  5. javax.persistence_2.0.4.v201112161009.jar (это из EclipseLink, если это имеет значение)

Я также установил OpenJPA и все его зависимости. Я нашел связки!--33-->2 до 5 (Коммонс-*) в lib на apache-openjpa-2.2.0 загрузить папку. Я скачал Серп здесь потому что Банка, найденная в папке lib, не была пакетом OSGi. Наконец, я нашел последние два пакета (#7 и #8) в Springsource :

  1. openjpa-2.2.0.Джар
  2. достояния-коллекции-3.2.1.Джар
  3. commons-dbcp-1.4.Джар
  4. commons-lang-2.4.Джар
  5. Коммонс-бассейн-1.5.4.Джар
  6. org.апаш.среде ServiceMix.пачки.serp-1.13.1_4.Джар
  7. com.springsource.класса javax.сервлет-2.5.0.Джар
  8. com.springsource.org.objectweb.asm-3.2.0.jar

как только я, наконец, установил OpenJPA, мне все еще нужен драйвер JDBC MySQL bundle, который я также получил из репозитория Springsource вместе с зависимостью ведения журнала commons:

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

сейчас на данный момент список установленных пакетов становится довольно большой. Я сказал, что установил OpenJPA, но это только потому, что я не мог понять, как использовать любого другого провайдера с Овном. Сначала я хотел использовать EclipseLink, но по-видимому, Apache Aries не обнаруживает его как провайдера и в соответствии с этот блог вы должны сделать еще один пакет, содержащий ваш собственный активатор для Овна, чтобы заметить EclipseLink. Я попробовал, но это не сработало, поэтому я вернулся к использованию OpenJPA.

Итак, теперь у меня два вопроса :

  • как я могу заставить OpenJPA заметить мой пакет MySQL ?

или же :

  • как я могу сделать Apache Овен обратите внимание на EclipseLink ?

вот это упорство.xml-файл, который я использую:

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

ошибка возникает, когда выполняется следующий конструктор моего класса DAO:

    @PersistenceContext(unitName="userManager.model")
private EntityManager em;
private EntityManagerFactory emf;

public UserDAOBean() {
    em = emf.createEntityManager();
}

вот ошибка, которую я получаю с OpenJPA, не находя MySQL. Конечно, стоит отметить, что и URL-адрес, и имя пользователя / пароль работают:

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

Я вырезал исключение (оно продолжается и продолжается) до этого момента:

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.access0(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

PS: I не удалось опубликовать ссылки на Овен, OpenJPA или EclipseLink из-за ограничения спама, извините :/

3 ответов


благодаря Холли Камминс и после еще нескольких часов исследований я смог найти решение своей проблемы. Я подробно расскажу об этом ниже, это будет очень долго ответ.

если вы хотите использовать EclipseLink С Apache Aries (который я нахожу на порядки проще установить, чем OpenJPA для OSGi, потому что он содержится в только 5 пакетов), вам придется проверить адаптер EclipseLink - Aries напрямую из Apache, потому что он еще не был выпущен.

заходим в соответствующую папку и выполните следующую команду, чтобы получить его :

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

вы должны получить папку с именем jpa-контейнер-eclipselink-адаптер. Теперь, предполагая, что вы используете Linux и установили Maven, выполните следующие команды:

cd jpa-container-eclipselink-adapter
mvn clean install

после того, как Maven успешно скомпилировал источник адаптера, вы найдете его в своем репозитории Maven, используя путь

<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

вам придется развернуть этот пакет вместе с другими (копирование его в bundle папка для Феликса).

так что это было для части EclipseLink, теперь, чтобы сделать вашу настойчивость действительно работать, вам придется использовать Blueprint с Овном. Вот список все пакеты, которые вам нужно будет получить от [http://aries.apache.org/downloads/currentrelease.html] (Apache Aries загрузить стр.)

  1. org.апаш.овен.чертеж
  2. org.апаш.овен.прокси
  3. org.апаш.овен.в JNDI.в API
  4. org.апаш.овен.в JNDI
  5. org.апаш.овен.чертеж
  6. org.апаш.овен.jpa.в API
  7. org.апаш.овен.jpa.контейнер.контекст
  8. org.апаш.овен.jpa.контейнер
  9. org.апаш.овен.торговая операция.чертеж
  10. org.апаш.овен.торговая операция.менеджер (это он указан дважды на их сайте, это просто дубликат)
  11. org.апаш.овен.util

как только вы закончите загрузку Овна, вам все еще нужны зависимости (получите их из SpringSource). Это пакеты для привязки SLF4J, Log4J, SLF4J Log4J и javax.сделки 1.1 также нужны пакеты от EclipseLink (вам нужна версия пакета OSGi)

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

откройте zip и получите следующие файлы:

  1. org.затмение.стойкость.antlr
  2. org.затмение.стойкость.asm
  3. org.затмение.стойкость.ядро
  4. org.затмение.стойкость.jpa
  5. javax.настойчивость

наконец, если что вы хотите использовать базу данных MySQL, вам понадобятся пакеты для драйвера JDBC MySQL (загруженного из 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

если у вас есть все эти пакеты установлены, вам нужно использовать не-jta-источник данных что вы получите через JNDI. Вот это настойчивость.xml-файл, который можно изменить для ваших нужд :

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

посмотреть javax.язык SQL.Источник в теге не-JTA-data-source ? Это то, что мы определим с помощью Blueprint xml. Для этого вам сначала нужно добавить OSGI-INF / blueprint/ папки в вашем пакете сохраняемости (тот, который содержит ваши DAOs и сущности). Это папка по умолчанию, в которой находятся XML-файлы blueprint, любой xml-файл, расположенный здесь, будет сканироваться. Как только это будет сделано, создайте копирку.в XML файл (имя может быть изменено) и вставить (и изменить) следующий код:

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

здесь, мы делаем две вещи. Во-первых, мы говорим Овну создать userManagerDS источник данных и настройте его с помощью драйвера JDBC, URL, пользователя и пароля. Это тот же источник данных что мы использовали в настойчивость.в XML.

затем мы вводим EntityManagerFactory в нашем DAO. Наш Дао-это com.образец.Дао.зернышки.UserDAOBean класс, нам нужно добавить его имя в бин тег. Этот класс должен будет реализовать интерфейс, и нам нужно будет добавить этот интерфейс в сервис тег. Теперь финал jpa:unit тег говорит Овну ввести связанный EntityManagerFactory к единице настойчивостиuserManager (то же имя, которое мы использовали в настойчивости.xml) с помощью первого конструктора UserDAOBean. Это делается с помощью атрибута index="0". Это также означает, что у вас должен быть какой-то код, как показано ниже в DAO :

private EntityManager em;
private EntityManagerFactory emf;

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

также возможно впрыснуть EMF используя сеттер. Вот дополнительные ресурсы, которые помогут вам использовать Blueprint :

дополнительно: будьте осторожны, если вы используете Felix, добавляя javax.пакет транзакций вызовет ограничение " uses нарушение", поскольку системный пакет (пакет 0) также экспортирует этот API. Вам придется запретить его экспорт, изменив следующую строку в конфигурации.свойства :

#org.osgi.framework.system.packages=

вам придется поместить здесь список все пакеты, экспортированные предыдущим пакетом. К сожалению, нет способа "удалить" пакет, вы должны переопределить весь список пакетов для экспорта. Вот мой, я надеюсь, что это поможет (да, это очень, очень долго) :

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

возможно, вам больше повезет использовать источник данных JNDI, а не прямое соединение jdbc. The пример блога Овна есть блог.пакет datasource, который регистрирует источник данных с помощью Blueprint. Список необходимых пакетов длиннее, чем у вас есть в настоящее время, но вы можете просто скопировать их все из блог-сборки/целевого каталога или pom.XML.

кроме того, у Овна есть организация.апаш.овен.jpa.eclipselink.адаптер, который делает то же самое, что и статья вы связан. Овен использует его для тестирования против EclipseLink, поэтому он определенно должен работать. Вы также можете посмотреть тесты Овна, чтобы узнать, как он используется, и посмотреть, есть ли тест EclipseLink, который вы можете скопировать.


все может быть проще при использовании плагина gemini blueprint dbAccess (http://www.eclipse.org/gemini/dbaccess/), который, я думаю, будет работать и для Овна. Для MySQL обязательно включите плагин connector (например http://ebr.springsource.com/repository/app/bundle/version/detail?name=com.springsource.com.mysql.jdbc&version=5.1.6) - ... Этого должно быть достаточно для запуска и запуска базы данных при условии наличия схемы.xml (для использования примера выше) является настроен правильно, как указано выше.