Beispiel aus der offiziellen Hibernate-Dokumentation.Karaf + JPA: Wie bekomme ich eine Instanz mit injected property mit blueprint.xml?
Können Sie mir einige Beispiele geben, wie Sie dieses DataPointServiceImpl mit bereits injiziertem EntityManager aus dem Container holen können?
UPDATE
habe ich versucht, diese
blueprint.xml
<?xml version="1.0" encoding="UTF-8"?>
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0 https://osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd">
<bean id="myActivator" class="ru.bia.karaf.web.Activator" init-method="test">
<property name="entityManager" ref="entityManager"/>
</bean>
<reference id="entityManager" interface="javax.persistence.EntityManager"/>
</blueprint>
Activator.java
public class Activator implements BundleActivator {
EntityManager entityManager;
public void setEntityManager(EntityManager entityManager) {
this.entityManager = entityManager;
}
public void test(){
System.out.println(entityManager);
}
...
}
aber ich habe jetzt
ERROR: Bundle org.apache.aries.jpa.support [204] EventDispatcher: Error during dispatch. (java.lang.ClassCastException: org.apache.aries.transaction.internal.AriesTransactionManagerImpl cannot be cast to javax.transaction.TransactionManager) java.lang.ClassCastException: org.apache.aries.transaction.internal.AriesTransactionManagerImpl cannot be cast to javax.transaction.TransactionManager
Ich habe die ' ' aber in Activator onStart() bekomme ich stil null 'Servicereference dataPointServiceReference = bundleContext.getServiceReference (" pointService "); Servicereference entityManagerServiceReference = bundleContext.getServiceReference (" myEntityManager ");' –
erf .. Sie können Blaupause und klassische OSGi Activators nicht mischen ... vielleicht sollten Sie Ihrer Frage noch weitere Details hinzufügen? –
Ich muss auf die Datenbank zugreifen, indem ich Hibernate für Bundle starte –