If the InitialContextFactory is the one of Karaf (not one embedded in the WebApplication), it should work. I suspect that, as you don’t have the import, when you do new InitialContextFactory in the WAR (in its own class loader), you don’t actually the context factory from Karaf.
Let me prepare a test case to check this. Regards JB > Le 9 sept. 2020 à 18:52, Paul Spencer <paulspen...@mindspring.com> a écrit : > > JB, > 1) I am using “new InitialContext()” as defined in the 4.17.3 of the Karaf > Container Documentation. > > 2) The application is deployed as a WAR > > Paul Spencer > >> On Sep 9, 2020, at 12:39 PM, Jean-Baptiste Onofre <j...@nanthrax.net> wrote: >> >> 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 >>>>> >>>>> >>>> >>> >> >