By the way, using @Component, you can do:

@Component(name = "foo", service = Foo.class, immediate = true, property = { 
"osgi.jndi.service.name=my/foo" })
public class MyFoo {
…
}

Regards
JB

> Le 9 sept. 2020 à 18:39, Jean-Baptiste Onofre <j...@nanthrax.net> a écrit :
> 
> Does your WebApplication use the InitialContextFactory from Karaf ?
> 
> I mean: how do you deploy your WebApplication ? As WebBundle or WAR ?
> 
> About JNDI "name" for service, you just have to add osgi.jndi.service.name 
> service property.
> 
> For instance, using "pure" Activator, you can do:
> 
> Hashtable<String, String> serviceProperties = new Hashtable();
> serviceProperties.put("osgi.jndi.service.name", "my/foo");
> ref = bundleContext.registerService(Foo.class, foo, serviceProperties);
> 
> Regards
> JB
> 
>> Le 9 sept. 2020 à 18:31, Paul Spencer <paulspen...@mindspring.com> a écrit :
>> 
>> JB,
>> 1) The feature JNDI feature is install.
>> 
>> 2) I have a OSGi command that has access to the TouchPointManagerWebService  
>> service via JNDI.  It is the Web Application that has no access to the 
>> TouchPointManagerWebService service.  Both the command and the Web 
>> Application have access to the EwmConfigurationService service.  The  
>> EwmConfigurationService Is defined via Blueprint.
>> 
>> 3) Please provide an example of “You can also add a service property 
>> osgi.jndi.name to simplify the lookup.”
>> 
>> ***
>> * Supporting information
>> ****
>> karaf@ewm-server()> bundle:services -p ewm-tpm-client ewm-configuration
>> 
>> TouchPoint Manager Web Service Client (186) provides:
>> --------------------------------------------------------------
>> component.id = 29
>> component.name = 
>> com.example.touchPointClient.internal.TouchPointWebServiceImpl
>> objectClass = 
>> [com.example.touchPointWsApi.webServices.TouchPointManagerWebService]
>> service.bundleid = 186
>> service.id = 253
>> service.scope = bundle
>> 
>> Configuration (176) provides:
>> --------------------------------------
>> objectClass = [com.example.core.services.EwmConfigurationService]
>> osgi.service.blueprint.compname = ewmConfigurationService
>> service.bundleid = 176
>> service.id = 219
>> service.scope = bundle
>> ----
>> objectClass = [org.osgi.service.blueprint.container.BlueprintContainer]
>> osgi.blueprint.container.symbolicname = ewm-configuration
>> osgi.blueprint.container.version = 2.0.0.SNAPSHOT
>> service.bundleid = 176
>> service.id = 250
>> service.scope = singleton
>> karaf@root()> 
>> 
>> karaf@ root()> feature:list --installed | grep -i jndi                       
>>                                                                              
>>                                                                           
>> jndi                         │ 4.2.9            │ x        │ Started │ 
>> enterprise-4.2.9         │ OSGi Service Registry JNDI access
>> karaf@root()> list -t 0| grep -i jndi
>> 84 │ Active   │  30 │ 9.4.28.v20200408      │ Jetty :: JNDI Naming
>> 197 │ Active   │  30 │ 1.1.0                 │ Apache Aries JNDI API
>> 198 │ Active   │  30 │ 1.0.2                 │ Apache Aries JNDI Core
>> 199 │ Active   │  30 │ 1.0.0                 │ Apache Aries JNDI Support for 
>> Legacy Runtimes
>> 200 │ Active   │  30 │ 1.0.0                 │ Apache Aries JNDI RMI Handler
>> 201 │ Active   │  30 │ 1.1.0                 │ Apache Aries JNDI URL Handler
>> 202 │ Active   │  30 │ 4.2.9                 │ Apache Karaf :: JNDI :: Core
>> karaf@root()> jndi:names
>> JNDI Name               │ Class Name
>> ────────────────────────┼───────────────────────────────────────────────
>> osgi:service/jndi       │ org.apache.karaf.jndi.internal.JndiServiceImpl
>> osgi:service/jdbc/test │ org.postgresql.jdbc2.optional.SimpleDataSource
>> karaf@root()>
>> 
>> 
>> Paul Spencer
>> 
>> 
>>> On Sep 9, 2020, at 12:07 PM, Jean-Baptiste Onofre <j...@nanthrax.net> wrote:
>>> 
>>> Hi Paul,
>>> 
>>> If your component expose a service (that you can see with bundle:services 
>>> for instance), and you have also the jndi feature installed, nothing to do: 
>>> you will have the JNDI name mapped to the OSGi service (it’s not related to 
>>> blueprint or DS, it’s directly service). You can also add a service 
>>> property osgi.jndi.name to simplify the lookup.
>>> 
>>> Regards
>>> JB
>>> 
>>>> Le 9 sept. 2020 à 18:03, Paul Spencer <paulspen...@mindspring.com> a écrit 
>>>> :
>>>> 
>>>> Karaf 4.2.9
>>>> PAX-WEB 7.2.16
>>>> 
>>>> I have a running in a MyFaces web application and I am not getting an OSGi 
>>>> Service defined via @Component via JNDI?
>>>> 
>>>> I am following the "OSGi Services Registry and JNDI" documentation in 
>>>> https://karaf.apache.org/manual/latest/#_naming_jndi to access the 
>>>> service.  Services defined via Blueprint are available to the web 
>>>> application where as services defined via @Component are not.  
>>>> Specifically the ctx.lookup(“osgi:service/...”) returns null for services 
>>>> define via @Component.  
>>>> 
>>>> What is needed for services defined using @Component 
>>>> (org.osgi.service.component.annotations.Component) to be available to a 
>>>> Web Application using PAX-WEB via the JNDI schema 
>>>> osgi:service/<interface>[/<filter>] ?
>>>> 
>>>> Note: I have defined  command in Karaf that is able to access the service 
>>>> via @Reference (org.apache.karaf.shell.api.action.lifecycle.Reference) and 
>>>> the JNDI schema osgi:service/<interface>[/<filter>] 
>>>> 
>>>> 
>>>> ***
>>>> * Environment information
>>>> ***
>>>> karaf@root()> feature:list --installed | grep -i pax                       
>>>>                                                                            
>>>>                                                                            
>>>>   
>>>> pax-http-service             │ 7.2.16           │          │ Started │ 
>>>> standard-4.2.9           │ Pax-Web OSGi HTTP Service
>>>> pax-web-core                 │ 7.2.16           │          │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │ Provide Core pax-web bundles
>>>> pax-jetty                    │ 9.4.28.v20200408 │          │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │ Provide Jetty engine support
>>>> pax-http-jetty               │ 7.2.16           │          │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │
>>>> pax-http                     │ 7.2.16           │          │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │ Implementation of the OSGI HTTP Service
>>>> pax-http-whiteboard          │ 7.2.16           │          │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │ Provide HTTP Whiteboard pattern support
>>>> pax-war                      │ 7.2.16           │ x        │ Started │ 
>>>> org.ops4j.pax.web-7.2.16 │ Provide support of a full WebContainer
>>>> pax-transx-tm-api            │ 0.4.4            │          │ Started │ 
>>>> pax-transx-0.4.4         │
>>>> pax-transx-tm-geronimo       │ 0.4.4            │          │ Started │ 
>>>> pax-transx-0.4.4         │
>>>> pax-jdbc-spec                │ 1.4.4            │          │ Started │ 
>>>> org.ops4j.pax.jdbc-1.4.4 │ Provides OSGi JDBC Service spec
>>>> pax-jdbc                     │ 1.4.4            │          │ Started │ 
>>>> org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Service support
>>>> pax-jdbc-config              │ 1.4.4            │          │ Started │ 
>>>> org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC Config support
>>>> pax-jdbc-postgresql          │ 1.4.4            │ x        │ Started │ 
>>>> org.ops4j.pax.jdbc-1.4.4 │ Provides JDBC PostgreSQL DataSourceFactory
>>>> pax-cdi                      │ 1.1.3            │ x        │ Started │ 
>>>> org.ops4j.pax.cdi-1.1.3  │ Provide CDI support
>>>> pax-cdi-weld                 │ 1.1.3            │          │ Started │ 
>>>> org.ops4j.pax.cdi-1.1.3  │ Weld CDI 1.2 support
>>>> karaf@root()> list | grep -i pax
>>>> 133 │ Active   │  80 │ 1.4.4                │ OPS4J Pax JDBC Generic 
>>>> Driver Extender
>>>> 134 │ Active   │  80 │ 1.4.4                │ OPS4J Pax JDBC Config
>>>> 135 │ Active   │  80 │ 1.4.4                │ OPS4J Pax JDBC Pooling 
>>>> Support Base
>>>> 143 │ Active   │  80 │ 0.4.4                │ pax-transx-tm-api
>>>> 144 │ Active   │  80 │ 0.4.4                │ pax-transx-tm-geronimo
>>>> 233 │ Active   │  80 │ 1.1.3                │ OPS4J Pax CDI Bean Bundle API
>>>> 234 │ Active   │  80 │ 1.1.3                │ OPS4J Pax CDI Extender for 
>>>> Bean Bundles
>>>> 235 │ Active   │  80 │ 1.1.3                │ OPS4J Pax CDI Portable 
>>>> Extension for OSGi
>>>> 236 │ Active   │  80 │ 1.1.3                │ OPS4J Pax CDI Service 
>>>> Provider Interface
>>>> 237 │ Active   │  80 │ 1.1.3                │ OPS4J Pax CDI Weld Adapter
>>>> karaf@root()>  
>>>> karaf@root()> list | grep -i faces
>>>> 230 │ Resolved │  80 │ 5.1.0                │ primefaces
>>>> 240 │ Resolved │  80 │ 2.2.12               │ Apache MyFaces JSF-2.2 Core 
>>>> API
>>>> 242 │ Resolved │  80 │ 2.2.12               │ Apache MyFaces JSF-2.2 Core 
>>>> Impl
>>>> 
>>>> Paul Spencer
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to