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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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