That sounds like a bug. id should be optional. Could you open a bug in JIRA
please?

Thanks,
Jeremy

On 4 October 2010 11:15, Alex Hutter <[email protected]> wrote:

> I figured it out - turns out I was missing one small bit from my
> blueprint.xml; my <service> tag was missing an 'id'.  I had:
>
> <service ref="persistenceImpl"
>   interface="alex.mjpa.api.persistence.ThingPersistenceService" >
> </service>
>
> but needed:
>
> <service ref="persistenceImpl" id="ThingPersistenceService"
>   interface="alex.mjpa.api.persistence.ThingPersistenceService" >
> </service>
>
> This looks to be either a bug in Aries or a bug in the blog sample; I am
> not sure which.
>
> regards,
>
> alex
>
>
>
>  From: Valentin Mahrwald <[email protected]> To:
> [email protected] Date: 01/10/2010 19:10 Subject: Re:
> Looking up a Blueprint service via JNDI / InitialContext
> ------------------------------
>
>
>
> Hi Alex,
>
> what you do all sounds entirely reasonable. The one thing I wonder is from
> where your lookup originates. For the osgi:service to work, I believe the
> caller has to be a bundle in the same OSGi framework as the service. If you
> are doing the lookup out of say a JEE application it is not going to work.
>
> If you are using a bundle then I would try to see whether a lookup via the
> BundleContext works when JNDI doesn't (-> that would be a bug :). Otherwise,
> there might also be a class space incompatibility between the bundle that
> does the lookup and the one that has the service.
>
> Valentin
>
>
> On 1 Oct 2010, at 12:05, Alex Hutter wrote:
>
> Hello,
>
> I am using Blueprint / Managed OpenJPA in a scenario based on the blog
> sample.  I need a way to fetch a Blueprint service from a point in the code
> that starts with no reference to anything Blueprint related.  As I
> understand it, this should be possible using something that looks a bit like
> this:
>
> InitialContext ic = new InitialContext();
> Object s = ic.lookup("osgi:service/" +
> ThingPersistenceService.class.getName());
>
> Where ThingPersistenceService is the interface my service is implementing.
>  However when I try this code, I get this unhelpful exception:
>
> javax.naming.NameNotFoundException:
> osgi:service/alex.mjpa.api.persistence.ThingPersistenceService
> at
> org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:110)
> at
> org.apache.aries.jndi.url.ServiceRegistryContext.lookup(ServiceRegistryContext.java:141)
> at org.apache.aries.jndi.DelegateContext.lookup(DelegateContext.java:148)
> at javax.naming.InitialContext.lookup(InitialContext.java:455)
> at alex.mjpa.ThingCommandProvider.getThingPS(ThingCommandProvider.java:22)
> ...
>
> I know the service is registered in the OSGi environment because typing
> "services" at the OSGi console includes this line:
>
> {alex.mjpa.api.persistence.ThingPersistenceService}={osgi.service.blueprint.compname=persistenceImpl,
> service.id=51}
>  Registered by bundle: alex.mjpa.persistence.jpa_1.0.0.qualifier [35]
>  No bundles using service.
>
> The service is registered in Blueprint using the following blueprint.xml:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <blueprint 
> xmlns="*http://www.osgi.org/xmlns/blueprint/v1.0.0*<http://www.osgi.org/xmlns/blueprint/v1.0.0>
> "
>        
> xmlns:xsi="*http://www.w3.org/2001/XMLSchema-instance*<http://www.w3.org/2001/XMLSchema-instance>
> "
>        
> xmlns:tx="*http://aries.apache.org/xmlns/transactions/v1.0.0*<http://aries.apache.org/xmlns/transactions/v1.0.0>
> "
>        
> xmlns:jpa="*http://aries.apache.org/xmlns/jpa/v1.0.0*<http://aries.apache.org/xmlns/jpa/v1.0.0>
> "
>        default-activation="lazy" >
>
>        <bean id="persistenceImpl"
>
>  class="alex.mjpa.persistence.jpa.ThingPersistenceServiceImpl" >
>                <tx:transaction method="*" value="Required" />
>                <jpa:context property="entityManager"
> unitname="thingExample" />
>        </bean>
>
>        <service ref="persistenceImpl"
>
>  interface="alex.mjpa.api.persistence.ThingPersistenceService" >
>        </service>
>
> </blueprint>
>
> I feel that I am missing something obvious here, but after an hour of
> experimentation I am still not making any progress.  Can anyone here help me
> solve this?  If I have not provided enough information, please let me know.
>
> thanks in advance,
>
> alex
>
>
>
>  ------------------------------
> *
> *
>
> *Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> *
>
>
>
>
>
>
>
>
>
>  ------------------------------
>
> *
> *
>
> *Unless stated otherwise above:
> IBM United Kingdom Limited - Registered in England and Wales with number
> 741598.
> Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU
> *
>
>
>
>
>
>
>

Reply via email to