2012-07-02 4 views
1

독립형 Felix 4.0.2 OSGi 상자에서 임베디드 Java DB 인스턴스를 사용하는 방법이 있다고 가정합니다. 그러나 나는 모든 것을 어떻게 설정해야하는지에 대한 단서를 찾을 수없는 것 같습니다. 어떤 번들을 사용해야합니까? 어떻게 설정해야합니까?펠릭스에서 임베디드 자바 DB가 필요하십니까?

glassfich 3.1.2 설치에서 전용 번들을 가져 오는 것을 포함하여 여러 가지 작업을 시도했지만, 지속성 관리자는 내 응용 프로그램을 제공하기 위해 프레임 워크에 등록되어 있지 않습니다.

은 ... 여기 내 persistence.xml 파일 내 코드가 다른 AA 인 ServiceTracker가의 EntityManagerFactory 등록에 대해 알아 등록되는, 그러나 아무도 찾을 수없는로 모든 격식을 중요시하는 교훈을 다음과

의 :

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

그리고 내 활성제의 시작() 메소드 :

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

} 

마지막으로, 내가 JDK 7 자바 DB 구현에있어는의이다 JDK 설치. 아무도 알고 있나요?

감사합니다. Julian

답변

0

확실하지 않지만 Maven Central에서 Derby를 사용해 볼 수 있습니다. 올바른 OSGi 메타 데이터를 포함해야합니다.

+0

감사합니다. 그러나 아직도 뭔가 빠져 있습니다. EMF 서비스 추적기는 여전히 관련 서비스를 제공하지 않습니다 ... –

관련 문제