karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bengt Rodehav <be...@rodehav.com>
Subject Re: "The org.osgi.service.jdbc package is unavailable" after upgrading to Karaf 2.3.0
Date Wed, 24 Oct 2012 06:53:58 GMT
Done:

https://issues.apache.org/jira/browse/ARIES-950

/Bengt

2012/10/24 Charles Moulliard <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> 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>
>>
>>> 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>
>>>
>>>> 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>
>>>>
>>>>> This is correct
>>>>>
>>>>>
>>>>> On Mon, Oct 22, 2012 at 2:29 PM, Bengt Rodehav <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>
>>>>>>
>>>>>>> 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>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=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
>>>>>>>> =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 = jdbc/filetransferhistoryjta
>>>>>>>> osgi.service.blueprint.compname = derbyXADataSource
>>>>>>>>  service.id = 493
>>>>>>>> ----
>>>>>>>> objectClass = javax.sql.DataSource
>>>>>>>> osgi.jndi.service.name = jdbc/filetransferhistorynojta
>>>>>>>> osgi.service.blueprint.compname = derbyDataSource
>>>>>>>> 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 = 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>
>>>>>>>>
>>>>>>>>> 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
>>>>>>>>> > 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
>
>
>

Mime
View raw message