Anschließen an PostgreSQL von OSGI-Anwendungen, die in Karaf Container bereitgestellt werden

StackOverflow https://stackoverflow.com//questions/23057562

Frage

Ich benutze Hibernate, um eine Verbindung zu PostgreSQL aus einem Karaf 2.3.4-Container herzustellen, wenn ich mein Bündel bereitstellte, gibt es eine Ausnahme, dass Javax.Naming.NameNotFoundException Osgi: service / javax.sql.dataSource / "(osgi.jndi .service.name= jdbc / postgresds).

Hier ist meine persistance.xml-Datei

generasacodicetagpre.

Hier ist meine blueprint.xml-Datei:

generasacodicetagpre.

und hier ist meine datasource-postgres.xml-Datei

generasacodicetagpre.

Und hier sind meine Funktionen.xml:

generasacodicetagpre.

Das vollständige Stacktrace ist:

javax.naming.nameNoundException: osgi: service / javax.sql.dataSource / "(osgi.jndi.service.name= jdbc / postgresds)" at org.apache.aries.jndi.url.serviceregistryCondext.LookUp (serviceRegistryContext.java:113) [72: org.apache.aries.jndi.url: 1.0.0] in org.apache.aries.jndi.url.serviceregistryContext.LookUp (serviceRegistryContext.java:144) [72: org.apache.aries.jndi.url: 1.0.0] at org.apache.aries.jndi.delegatecontext.lookup (delegatecontext.java:161) [70: org.apache.aries.jndi.core: 1.0.0] bei javax.naming.initialcontext.lookup (InitialContext.java:411) [: 1.7.0_51] AT org.apache.aries.jpa.container.unit.impl.jndidataSource.ghtds (jndidataSource.java:65) [67: org.apache.aries.jpa.container: 1.0.0] at org.apache.aries.jpa.container.unit.impl.delayedLookupDataSource.GetConnection (verzögertLookupDataSource.java:36) [67: org.apache.aries.jpa.container: 1.0.0] bei org.hibernate.ejb.connection.injectedDataSourceConnectionProvider.GetConnection (InjectedDataSourceConnectionProvider.java:70) [91: org.hibernate.entityManager: 4.2.2.final] bei org.hibernate.gine.jdbc.internal.jdbcservicesSimpl.InternProviderjdbcConnectionAccess.obtainConnection (jdbcservicessimpl.java:242) [90: org.hibernate.core: 4.2.2.final] auf org.hibernate.gine.jdbc.Internal.jdbcservicessimpl.configure (jdbcservicessimpl.java:117) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.service.internal.standardsserviceRegistryImpl.configureservice (dorneserviceregistryImpl.java:75) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.service.Internal.abstractServiceReGistryImpl.Initializeservice (AbstractServiceReGistryInl.java:159) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.service.Internal.abstractserviceRegistryImpl.getService (AbstractServiceRegistryImpl.java:131) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.cfg.configuration.buildyPheregations (configuration.java:1797) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.cfg.configuration.buildSessionFactory (configuration.java:1755) [90: org.hibernate.core: 4.2.2.final] bei org.hibernate.ejb.entityManagerFactoryImpl. (EntityManagerFactoryImpl.java:96) [91: org.hibernate.entityManager: 4.2.2.final] bei org.hibernate.ejb.ejb3configuration.buildentityManagerFactory (EJB3Configuration.java:914) [91: org.hibernate.entityManager: 4.2.2.final] bei org.hibernate.osgi.osgipersistenceProvider.createcontainerentityManagerFakt (OsgipersistenzProvider.java:99) [96: org.hibernate.osgi: 4.2.2.final] at org.apache.aries.jpa.container.impl.entitymanagerFactoryManager.CreateEnityManagerFactoryManager (EntityManagerFactoryManager.java:329) [67: org.apache.aries.jpa.container: 1.0.0] at org.apache.aries.jpa.container.impl.entitymanagerFactoryManager.RegisterEntityManagerFactoryManager (EntityManagerFactoryManager.java:242) [67: org.apache.aries.jpa.container: 1.0.0] at org.apache.aries.jpa.container.impl.entitymanagerFactoryManager.bundlestatechange (entitymanagerFactoryManager.java:185) [67: org.apache.aries.jpa.container: 1.0.0] at org.apache.aries.jpa.container.impl.persiencebundleManager.SetUpManager (persistenzbundLemanager.java:394) [67: org.apache.aries.jpa.container: 1.0.0] at org.apache.aries.jpa.container.impl.persiencebundleManager.addingservice (persistenzbundleManager.java:209) [67: org.apache.aries.jpa.container: 1.0.0] at org.osgi.util.tracker.servicetracker $ spaced.customizerAdding (serviceTracker.java:932) [karaf.jar: 2.3.4] AT ORG.OSGI.UTIL.TRACKER.SERVICETRACKER $ Tracked.CustomizerAdding (serviceTracker.java:1) [Karaf.jar: 2.3.4] bei org.osgi.util.tracker.abstractTracked.TrackAdding (AbstractTracked.java:256) [Karaf.jar: 2.3.4] at org.osgi.util.tracker.abstractTracked.Track (AbstractTracked.java:229) [Karaf.jar: 2.3.4] at org.osgi.util.tracker.servicetracker $ spaced.servicechanged (serviceTracker.java:894) [karaf.jar: 2.3.4] AT org.apache.Felix.Framework.Urtil.eventdiScher.invokeServiceListenEncallback (EventDispatcher.java:932) [org.apache.Felix.Framework-4.0.3.jar:] AT org.apache.Felix.Framework.Unil.eventDiScher.FireEventInDInd (Eventdispatcher.java:793) [org.apache.Felix.Framework-4.0.3.jar:] bei org.apache.Felix.Framework.Urtil.eventdiScher.FireServiceEvent (Eventdispatcher.java:543) [org.apache.Felix.Framework-4.0.3.jar:] bei org.apache.Felix.Framework.Felix.FireViceEvent (felix.java:4260) [org.apache.Felix.Framework-4.0.3.jar:] bei org.apache.Felix.Framework.Felix.Registerkerservice (felix.java:3275) [org.apache

.Felix.Framework-4.0.3.jar:] AT org.apache.Felix.Framework.BundlecontextImpl.Registerservice (BundlecontextImpl.Java:346) [Org.Appache.Felix.Framework-4.0.3.jar:] AT org.apache.Felix.Framework.BundlecontextImpl.Registerservice (BundlecontextImpl.Java:320) [org.apache.Felix.Framework-4.0.3.jar:] auf org.hibernate.osgi.hibernatebundleactivator.start (hibernatebundleactivator.java:80) [96: org.hibernate.osgi: 4.2.2.final] bei org.apache.Felix.Framework.Unil.SecureAction.StAntactIcator (SecureAction.java:645) [org.apache.Felix.Framework-4.0.3.jar:] bei org.apache.Felix.Framework.Felix.ActivateBundle (felix.java:1977) [org.apache.Felix.Framework-4.0.3.jar:] bei org.apache.Felix.Framework.Felix.StartBundle (felix.java:1895) [org.apache.Felix.Framework-4.0.3.jar:] AT org.apache.Felix.Framework.BundleImpl.Start (bundleimpl.java:944) [org.apache.Felix.Framework-4.0.3.jar:] AT Org.Apache.Felix.Framework.BundleImpl.Start (bundleimpl.java:931) [org.apache.Felix.Framework-4.0.3.jar:] at org.apache.karaf.Features.Enternal.FeaturESSVICEIMPL.InstallFeatures (featureServiceImpl.java:488) [25: org.apache.karaf.Features.core: 2.3.4] auf org.apache.karaf.features.Internal.faturessserviceImpl.installFeature (FeatureReTeViceImpl.java:405) [25: org.apache.karaf.Features.Core: 2.3.4] at org.apache.karaf.Features.Internal.FeaturESSVICEIMPL.InstallFeature (featureServiceImpl.java:401) [25: org.apache.karaf.Features.core: 2.3.4] AT org.apache.karaf.Features.comMand.installFeatureCommand.Doexecute (InstallFeatureCommand.Java:62) [27: org.apache.karaf.Features.comMand: 2.3.4] AT org.apache.karaf.Features.comMand.Featurescompmandsupport.doexecute (FashionCommandSupport.java:41) [27: org.apache.karaf.Features.comMand: 2.3.4] bei org.apache.karaf.shell.console.osgicommandsupport.execute (osgicommandsupport.java:38) [14: org.apache.karaf.shell.console: 2.3.4] at org.apache.felix.gogo.commands.basic.abstractcommand.execute (abstractcommand.java:35) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.felix.gogo.Runtime.comMandProxy.execute (commandproxy.java:78) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.Felix.gogo.Runtime.CLOUND.Executecmd (closure.java:474) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.Felix.gogo.Runtime.CLOUND.Executestatement (closure.java:400) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.Felix.gogo.Runtime.pipe.Run (Pipe.java:108) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.Felix.gogo.Runtime.CLOUND.Execute (closure.java:183) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.Felix.gogo.Runtime.CLOUND.Execute (closure.java:120) [14: org.apache.karaf.shell.console: 2.3.4] AT org.apache.Felix.gogo.Runtime.Felix.Gogo.Runtime.comMandSessionImpl.Execute (commandssessionImpl.java:89) [14: org.apache.karaf.shell.console: 2.3.4] bei org.apache.karaf.shell.console.jline.console.run (console.java:183) [14: org.apache.karaf.shell.console: 2.3.4] bei java.lang.thread.run (thread.java:744) [: 1.7.0_51]

Ich habe dieses Problem gelöst und habe die Liste der Dateien als gesagt, dass M. Cristian aktualisiert wurde, aber das ist ein anderes seltsames Problem: Wenn Sie KarAF neu starten und versuchen, Daten über die Karaf-Konsole einzufügen, wird der Konsolen-Druck: Das ist keine aktive Transaktion Ich habe den anderen Weg mit EntityManager versucht und das Problem erscheint nicht mehr.

War es hilfreich?

Lösung

Ihr Code kann nicht funktionieren, da die DataSource in demselben Blueprint-Kontext veröffentlicht wird, in dem eine Persistenzeinheit verwendet wird.

Das Problem ist, dass Blueprint auf einen EnitationsmanagerFactory-Dienst wartet, um zu injizieren.Die DataSource wird also niemals veröffentlicht.ARIES JPA erkennen fest, dass es ein EntityManagerFactory für Ihr Bündel erstellen soll, aber Timeout versucht, die DataSource zu finden.

Setzen Sie also die DataSource in ein SpeRAT-Bündel ein und sollte funktionieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top