karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jean-Baptiste Onofré ...@nanthrax.net>
Subject Re: "The org.osgi.service.jdbc package is unavailable" after upgrading to Karaf 2.3.0
Date Wed, 24 Oct 2012 08:57:55 GMT
Thanks Bengt, it's a good idea, I gonna work on it.

Regards
JB

On 10/24/2012 08:53 AM, Bengt Rodehav wrote:
> Done:
>
> https://issues.apache.org/jira/browse/ARIES-950
>
> /Bengt
>
> 2012/10/24 Charles Moulliard <ch007m@gmail.com <mailto:ch007m@gmail.com>>
>
>     Don't think that some commands exist but that should be interesting
>     to have a jndi query command. Feel free to open a ticket for Aries
>     project
>
>
>     On Tue, Oct 23, 2012 at 3:56 PM, Bengt Rodehav <bengt@rodehav.com
>     <mailto:bengt@rodehav.com>> wrote:
>
>         Hello Michael,
>
>         I don't know what the best practice is. Are there any existing
>         Karaf commands (in either Karaf or Aries community) that
>         concerns Aries components?
>
>         /Bengt
>
>
>         2012/10/23 Michael Täschner <m.taeschner@gmail.com
>         <mailto:m.taeschner@gmail.com>>
>
>             Hi Bengt,
>
>             regarding the "jndi" command. I guess this should be
>             requested at the Aries guys ? Or another karaf component for
>             enriching Aries JNDI.
>
>             Regards,
>             Michael
>
>
>             2012/10/22 Bengt Rodehav <bengt@rodehav.com
>             <mailto:bengt@rodehav.com>>
>
>                 Thanks for checking Charles. Do you know if there is a
>                 simple way to check if jndi can resolve a query? If not,
>                 then a "jndi" command would be a great add-on to Karaf.
>
>                 /Bengt
>
>                 2012/10/22 Charles Moulliard <ch007m@gmail.com
>                 <mailto:ch007m@gmail.com>>
>
>                     This is correct
>
>
>                     On Mon, Oct 22, 2012 at 2:29 PM, Bengt Rodehav
>                     <bengt@rodehav.com <mailto:bengt@rodehav.com>> wrote:
>
>                         Achim, no Grace Period for any of the bundles.
>
>                         Charles, "headers 151" gives me the following:
>
>                         /Connect :: filetransfer-history-domain (151)/
>                         /--------------------------------------------/
>                         /Manifest-Version = 1.0/
>                         /Bnd-LastModified = 1350893282476/
>                         /Tool = Bnd-0.0.357/
>                         /Meta-Persistence = META-INF/persistence.xml/
>                         /Built-By = berodeha/
>                         /Implementation-Version = 2.3-SNAPSHOT/
>                         /Build-Jdk = 1.6.0_32/
>                         /Implementation-Title = Digia Connect/
>                         /Created-By = Apache Maven Bundle Plugin/
>                         /
>                         /
>                         /Bundle-Name = Connect ::
>                         filetransfer-history-domain/
>                         /Bundle-SymbolicName =
>                         se.digia.connect.services.filetransfer.history-domain/
>                         /Bundle-Version = 2.3.0.SNAPSHOT/
>                         /Bundle-ManifestVersion = 2/
>                         /
>                         /
>                         /Import-Package =/
>                         /
>                         javax.persistence;resolution:=optional;version=1.1,/
>                         /
>                         javax.persistence.metamodel;resolution:=optional;version=1.1,/
>                         /
>                         javax.validation.constraints;resolution:=optional;version=1.0,/
>                         /
>                         org.apache.openjpa.enhance;resolution:=optional;version=2.1,/
>                         /
>                         org.apache.openjpa.util;resolution:=optional;version=2.1,/
>                         /
>                         se.digia.connect.filetransfer.history.domain;/
>                         /                resolution:=optional;/
>                         /                version=2.3,/
>                         /
>                         se.digia.connect.util.persistence;resolution:=optional;version=2.3/
>                         /Export-Package =/
>                         /
>                         se.digia.connect.filetransfer.history.domain;/
>                         /                uses:="org.apache.openjpa.util,/
>                         /
>                         se.digia.connect.util.persistence,/
>                         /
>                         javax.validation.constraints,/
>                         /
>                         org.apache.openjpa.enhance,/
>                         /                        javax.persistence,/
>                         /
>                         javax.persistence.metamodel";/
>                         /                version=2.3.0.SNAPSHOT/
>
>                         I think this is correct. Also, this has worked
>                         for quite some time on Karaf 2.2.8 (which had an
>                         older Aries version).
>
>                         /Bengt
>
>
>                         2012/10/22 Charles Moulliard <ch007m@gmail.com
>                         <mailto:ch007m@gmail.com>>
>
>                             Have you added Meta-Persistence metadata in
>                             the MANIFEST file ? I have created a ticket
>                             to provide a more end user message on the
>                             console
>                             (https://issues.apache.org/jira/browse/ARIES-945)
>
>
>                             On Mon, Oct 22, 2012 at 2:09 PM, Bengt
>                             Rodehav <bengt@rodehav.com
>                             <mailto:bengt@rodehav.com>> wrote:
>
>                                 Thanks for your reply Charles,
>
>                                 Your're right I don't need the
>                                 DataSourceFactory. I mistakenly thought
>                                 that the info message was connected to
>                                 the problem with not finding the data
>                                 source via JNDI. Since everything has
>                                 worked before (using Karaf 2.2.8) I
>                                 assumed that the feature descriptor   in
>                                 Karaf 2.3.0 lacked a bundle (that
>                                 exported the org.osgi.service.jdbc
>                                 package). That's why I thought it was a
>                                 Karaf problem and not an Aries problem.
>
>                                 So, I probably do not need the
>                                 org.osgi.service.jdbc package - it was a
>                                 false lead. Still, I do have problems
>                                 finding the data source via jndi. I get:
>
>                                 /
>                                 2012-10-22 13:36:23,428 | ERROR |
>                                 y/api/getEntries | container
>                                             |
>                                 ntainer.unit.impl.JndiDataSource   85 |
>                                 The DataSource
>                                 osgi:service/javax.sql.DataSource/(osgi.jndi.service.name
>                                 <http://osgi.jndi.service.name>=jdbc/filetransferhistoryjta)
>                                 required by bundle
>                                 se.digia.connect.services.filetransfer.history-domain/2.3.0.SNAPSHOT
>                                 could not be found.
>                                 javax.naming.NameNotFoundException:
>                                 osgi:service/javax.sql.DataSource/"(osgi.jndi.service.name
>                                 <http://osgi.jndi.service.name>=jdbc/filetransferhistoryjta)"
>                                 at
>                                 org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:113)[139:org.apache.aries.jndi.url:1.0.0]
>                                 at
>                                 org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:144)[139:org.apache.aries.jndi.url:1.0.0]
>                                 at
>                                 org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:161)[137:org.apache.aries.jndi.core:1.0.0]
>                                 at
>                                 javax.naming.InitialContext.lookup(InitialContext.java:392)[:1.6.0_32]
>                                 at
>                                 org.apache.aries.jpa.container.unit.impl.JndiDataSource.getDs(JndiDataSource.java:65)[134:org.apache.aries.jpa.container:1.0.0]
>                                 at
>                                 org.apache.aries.jpa.container.unit.impl.DelayedLookupDataSource.getConnection(DelayedLookupDataSource.java:36)[134:org.apache.aries.jpa.container:1.0.0]
>                                 at
>                                 org.apache.openjpa.lib.jdbc.DelegatingDataSource.getConnection(DelegatingDataSource.java:137)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.lib.jdbc.DecoratingDataSource.getConnection(DecoratingDataSource.java:112)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:239)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDataSource(JDBCConfigurationImpl.java:872)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.kernel.JDBCStoreManager.getDataSource(JDBCStoreManager.java:179)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:162)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setContext(JDBCStoreManager.java:148)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.DelegatingStoreManager.setContext(DelegatingStoreManager.java:79)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:369)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:323)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.AbstractBrokerFactory.initializeBroker(AbstractBrokerFactory.java:229)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:213)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:60)[142:org.apache.openjpa:2.1.1]
>                                 at
>                                 org.apache.aries.jpa.container.impl.CountingEntityManagerFactory.createEntityManager(CountingEntityManagerFactory.java:71)[134:org.apache.aries.jpa.container:1.0.0]
>                                 at
>                                 org.apache.aries.jpa.container.context.transaction.impl.JTAPersistenceContextRegistry.getCurrentPersistenceContext(JTAPersistenceContextRegistry.java:152)[135:org.apache.aries.jpa.container.context:1.0.1]
>                                 at
>                                 org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getPersistenceContext(JTAEntityManager.java:87)[135:org.apache.aries.jpa.container.context:1.0.1]
>                                 at
>                                 org.apache.aries.jpa.container.context.transaction.impl.JTAEntityManager.getCriteriaBuilder(JTAEntityManager.java:391)[135:org.apache.aries.jpa.container.context:1.0.1]
>                                 ...
>                                 /
>
>                                 But the data source seem to be published
>                                 as a service, the command "ls | grep -A
>                                 4 -B 4 javax.sql.DataSource" gives me
>                                 the following output:
>
>                                 /Connect ::
>                                 filetransfer-history-datasource (153)
>                                 provides:/
>                                 /----------------------------------------------------------/
>                                 /javax.sql.XADataSource/
>                                 /javax.sql.DataSource/
>                                 /org.osgi.service.blueprint.container.BlueprintContainer/
>
>                                 I then execute "ls 153" and get:
>
>                                 /
>                                 Connect ::
>                                 filetransfer-history-datasource (153)
>                                 provides:
>                                 ----------------------------------------------------------
>                                 objectClass = javax.sql.XADataSource
>                                 osgi.jndi.service.name
>                                 <http://osgi.jndi.service.name> =
>                                 jdbc/filetransferhistoryjta
>                                 osgi.service.blueprint.compname =
>                                 derbyXADataSource
>                                 service.id <http://service.id> = 493
>                                 ----
>                                 objectClass = javax.sql.DataSource
>                                 osgi.jndi.service.name
>                                 <http://osgi.jndi.service.name> =
>                                 jdbc/filetransferhistorynojta
>                                 osgi.service.blueprint.compname =
>                                 derbyDataSource
>                                 service.id <http://service.id> = 494
>                                 ----
>                                 objectClass =
>                                 org.osgi.service.blueprint.container.BlueprintContainer
>                                 osgi.blueprint.container.symbolicname =
>                                 se.digia.connect.services.filetransfer.h/
>                                 istory-datasource
>                                 /
>                                 osgi.blueprint.container.version =
>                                 2.3.0.SNAPSHOT
>                                 service.id <http://service.id> = 495
>                                 /
>
>                                 To me it looks like the service is
>                                 provided with the correct properties.
>                                 Maybe it's a jndi problem? I was hoping
>                                 there was a "jndi" command in the Karaf
>                                 shell that I could use to see what can
>                                 be resolved via jndi but I can't find
>                                 such a command.
>
>                                 I've actually encountered another
>                                 strange problem. On startup everything
>                                 looks fine. But when I try to access the
>                                 webconsole - it's not there. I then
>                                 start to type "list" in the Karaf shell.
>                                 But as soon as I type the "l" I get the
>                                 following message in the console:
>
>                                 /karaf@root> lError executing command:
>                                 read() with timeout cannot be called as no/
>                                 /n-blocking operation is disabled/
>                                 /        __ __                  ____/
>                                 /       / //_/____ __________ _/ __//
>                                 /      / ,<  / __ `/ ___/ __ `/ /_/
>                                 /     / /| |/ /_/ / /  / /_/ / __//
>                                 /    /_/ |_|\__,_/_/   \__,_/_//
>                                 /
>                                 /
>                                 /  Apache Karaf (2.3.0)/
>                                 /
>                                 /
>                                 /Hit '<tab>' for a list of available
>                                 commands/
>                                 /and '[cmd] --help' for help on a
>                                 specific command./
>                                 /Hit '<ctrl-d>' or 'osgi:shutdown' to
>                                 shutdown Karaf./
>
>                                 Note that the "Karaf" logo had already
>                                 been shown so it's shown twice. Also, in
>                                 the log I get:
>
>                                 /2012-10-22 13:28:27,999 | ERROR |
>                                 Thread-6         | FeaturesServiceImpl
>                                             |
>                                 s.internal.FeaturesServiceImpl$2 1143 |
>                                 Error installing boot features/
>                                 /java.lang.NullPointerException/
>                                 /at
>                                 org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1432)[org.apache.felix.framework-4.0.3.jar:]/
>                                 /at
>                                 org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:72)[org.apache.felix.framework-4.0.3.jar:]/
>                                 /at
>                                 org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1843)[org.apache.felix.framework-4.0.3.jar:]/
>                                 /at
>                                 java.lang.ClassLoader.loadClass(ClassLoader.java:247)[:1.6.0_32]/
>                                 /at
>                                 org.apache.karaf.features.internal.FeaturesServiceImpl.installFeatures(FeaturesServiceImpl.java:525)[20:org.apache.karaf.features.core:2.3.0]/
>                                 /at
>                                 org.apache.karaf.features.internal.FeaturesServiceImpl$2.run(FeaturesServiceImpl.java:1141)[20:org.apache.karaf.features.core:2.3.0]/
>                                 /2012-10-22 13:28:28,002 | ERROR |
>                                 Thread-6         | FeaturesServiceImpl
>                                             |
>                                 res.internal.FeaturesServiceImpl 1227 |
>                                 Error persisting FeaturesService state/
>                                 /java.lang.IllegalStateException:
>                                 Invalid BundleContext./
>                                 /at
>                                 org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:514)[org.apache.felix.framework-4.0.3.jar:]/
>                                 /at
>                                 org.apache.felix.framework.BundleContextImpl.getDataFile(BundleContextImpl.java:491)[org.apache.felix.framework-4.0.3.jar:]/
>                                 /at
>                                 org.apache.karaf.features.internal.FeaturesServiceImpl.saveState(FeaturesServiceImpl.java:1215)[20:org.apache.karaf.features.core:2.3.0]/
>                                 /at
>                                 org.apache.karaf.features.internal.FeaturesServiceImpl$2.run(FeaturesServiceImpl.java:1146)[20:org.apache.karaf.features.core:2.3.0]/
>
>                                 If I don't press a key in the shell, I
>                                 never get these messages but then the
>                                 web service will never install. It's as
>                                 if the installation is hung, waiting for
>                                 something.
>
>                                 Do you or anyone have any clue as to
>                                 what is happening. I am in the process
>                                 of upgrading my custom distribution of
>                                 Karaf from 2.2.8 to 2.3.0 so I might
>                                 have done something very wrong but right
>                                 now I have no clue as to where I should
>                                 look further,
>
>                                 /Bengt
>
>
>                                 2012/10/22 Charles Moulliard
>                                 <ch007m@gmail.com <mailto:ch007m@gmail.com>>
>
>                                     Bengt,
>
>                                     This package is not required by
>                                     Aries JPA as resolution is optional :
>
>                                     org.osgi.service.jdbc;resolution:=optional,
>
>                                     When the Aries JPA Container
>                                     /ManagedPersistenceUnitInfoImpl
>                                     /class is called, Aries does a check
>                                     to verify if the OSGI service is
>                                     provided. If this is not the case,
>                                     the info is displayed in the log and
>                                     Aries JPA Container continues to
>                                     load the JPA Container based on your
>                                     config (persistence.xml, datasource,
>                                     ...). If you are using JPA, you
>                                     shouldn't use the DataSourceFactory.
>
>                                     These links could help you to
>                                     configure your project
>
>                                     /http://stackoverflow.com/questions/11861414/openjpa-in-osgi-not-finding-mysql-jdbc-connector-bundle/
>                                     /http://aries.apache.org/modules/jpaproject.html/
>                                     /
>                                     /
>
>                                     Regards,
>
>                                     Charles
>
>                                     On Mon, Oct 22, 2012 at 11:25 AM,
>                                     Bengt Rodehav <bengt@rodehav.com
>                                     <mailto:bengt@rodehav.com>> wrote:
>
>                                         I'm trying to upgrade fro Karaf
>                                         2.2.8 to Karaf 2.3.0 and have
>                                         run into a problem regarding
>                                         datasources. I get the following
>                                         in my log:
>
>                                         /2012-10-22 10:52:59,563 | INFO
>                                           | Thread-7         | container
>                                                                 |
>                                         l.ManagedPersistenceUnitInfoImpl
>                                            50 | The
>                                         org.osgi.service.jdbc package is
>                                         unavailable. As a result the
>                                         Aries JPA container will not
>                                         offer any DataSourceFactory
>                                         integration./
>
>                                         It's only an INFO message but it
>                                         seems fatal to me because later
>                                         on I cannot find my datasource
>                                         when I try to use it. I publish
>                                         a data source (for Derby) using
>                                         Blueprint. I use the following
>                                         features from the
>                                         karaf-enterprise descriptor:
>
>                                         - transaction
>                                         - jpa
>                                         - jndi
>
>                                         When I execute "exports | grep
>                                         -i org.osgi.service.jdbc" on the
>                                         command line I get an empty result.
>
>                                         It seems like this package is
>                                         needed for Aries JPA Container.
>                                         What bundle should export it?
>
>                                         /Bengt
>
>
>
>
>                                     --
>                                     Charles Moulliard
>                                     Apache Committer / Sr. Enterprise
>                                     Architect (RedHat)
>                                     Twitter : @cmoulliard | Blog :
>                                     http://cmoulliard.blogspot.com
>
>
>
>
>
>
>                             --
>                             Charles Moulliard
>                             Apache Committer / Sr. Enterprise Architect
>                             (RedHat)
>                             Twitter : @cmoulliard | Blog :
>                             http://cmoulliard.blogspot.com
>
>
>
>
>
>
>                     --
>                     Charles Moulliard
>                     Apache Committer / Sr. Enterprise Architect (RedHat)
>                     Twitter : @cmoulliard | Blog :
>                     http://cmoulliard.blogspot.com
>
>
>
>
>
>
>
>
>     --
>     Charles Moulliard
>     Apache Committer / Sr. Enterprise Architect (RedHat)
>     Twitter : @cmoulliard | Blog : http://cmoulliard.blogspot.com
>
>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com

Mime
View raw message