Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Felix中的嵌入式Java DB?_Java_Database_Apache Felix - Fatal编程技术网

Felix中的嵌入式Java DB?

Felix中的嵌入式Java DB?,java,database,apache-felix,Java,Database,Apache Felix,我假设有一种方法可以在独立的Felix 4.0.2 OSGi框中使用嵌入式Java DB实例。然而,我似乎找不到任何关于如何设置整个过程的线索:我应该使用什么实现包?我应该如何设置它 我尝试了很多事情,包括从glassfich 3.1.2安装中获得专用捆绑包,但无论我做什么,都没有通过框架注册持久性管理器来为我的应用程序提供 否则,我的代码遵循所有学术规则,注册了ServiceTracker以了解EntityManagerFactory的注册情况,但没有找到任何。。。 这是我的persisten

我假设有一种方法可以在独立的Felix 4.0.2 OSGi框中使用嵌入式Java DB实例。然而,我似乎找不到任何关于如何设置整个过程的线索:我应该使用什么实现包?我应该如何设置它

我尝试了很多事情,包括从glassfich 3.1.2安装中获得专用捆绑包,但无论我做什么,都没有通过框架注册持久性管理器来为我的应用程序提供

否则,我的代码遵循所有学术规则,注册了ServiceTracker以了解EntityManagerFactory的注册情况,但没有找到任何。。。 这是我的persistence.xml文件:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/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_1_0.xsd">

<persistence-unit name="com.julianware.toolbox.logbacktracker.pu"
    transaction-type="RESOURCE_LOCAL">
    <!-- mapping-file>META-INF/maintenance_orm.xml</mapping-file>
    <mapping-file>META-INF/vehicle_orm.xml</mapping-file -->

    <class>com.julianware.toolbox.logbacktracker.pu.LoggerEvent</class>

    <exclude-unlisted-classes>true</exclude-unlisted-classes>

    <properties>
        <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:derby:database;create=true" />
        <property name="javax.persistence.jdbc.user" value="felix" />
        <property name="javax.persistence.jdbc.password" value="felix" />
    </properties>
</persistence-unit>
最后,我在JDK 7上。JavaDB实现是jdk安装的实现。 有人知道什么吗

非常感谢。
朱利安

我不确定,但你可以试试马文中心的德比。它应该包含正确的OSGi元数据。

谢谢。但还是少了一些东西。EMF服务跟踪器仍然没有提供任何相关的服务。。。
public void start(final BundleContext context) throws Exception {
    Filter filter = context.createFilter(String.format("(&(%s=%s)(%s=%s))",
        OBJECTCLASS, EntityManagerFactory.class.getName(),
        EntityManagerFactoryBuilder.JPA_UNIT_NAME, "com.julianware.toolbox.logbacktracker.pu")
    ); 
    entityManagerFactoryTracker = new ServiceTracker(context, filter,  new ServiceTrackerCustomizer() {

        @Override
        public void removedService(ServiceReference reference, Object service) {}

        @Override
        public void modifiedService(ServiceReference reference, Object service) {}

        @Override
        public Object addingService(ServiceReference reference) {
            logger.debug("Found Entity Manager Service reference.");
            entityManagerFactory = (EntityManagerFactory) context.getService(reference);
            return entityManagerFactory;
        }
    });
    entityManagerFactoryTracker.open();

}