Hi I have the same problem.

I'm trying to get it working in Karaf.
So I'm not sure whether this a Karaf issue or PAX-web.

I can provide steps to reproduce with Karaf:
- Download Karaf 4.3.0
- Extract it.
- Run it via ./bin/karaf
- invoke commands in the Karaf shell: "feature:install httpfeature:install 
war"
- install logger  via the Karaf shell: "bundle:install -s 
mvn:org.slf4j/slf4j-simple/1.7.25 bundle:install -s 
mvn:org.slf4j/slf4j-api/1.7.25"
- Use this project https://github.com/denis-anisimov/simple-web
- install the project locally
- install the attached project : "bundle:install -s 
mvn:org.example/simple-web/1.0.0"
- open the browser "http://localhost:8181/";.
- the servlet is working : the message is shown in the browser.
- but the "TestServletContextListener::contextInitialized" is never 
invoked. Neither console not log contains expected message.

Is it a bug in PAX-web?  Karaf ?
Or am I doing somethig wrong ?
ServletContextListener works as expected in the felix-jetty .

By the way : how can I create an issue for PAX? Once I create an account to 
login to JIRA it says I don't have access to it. 
And I may not create a ticket.
On Tuesday, March 5, 2019 at 8:20:45 AM UTC+3 [email protected] wrote:

> Hello
>
> Did you try registering separate listeners instead of one with different 
> interfaces?
>
> I'm not sure about this ValidatorException. Try running mvn with -e option 
> to show full stack traces.
>
> regards
> Grzegorz Grzybek
>
> czw., 14 lut 2019 o 23:45 Nhut Thai Le <[email protected]> napisał(a):
>
>> Hello again,
>> For some reason, i was able to get my ServletContextListener working for 
>> a while then now i need to added another one (for different app context) 
>> and i found that both the new and old one does not work anymore. My 
>> other HttpSessionListener is still working fine. Funny is that both the 
>> ServletContextListener and the HttpSessionListener is extended by the same 
>> class:
>>
>> @Component(
>> service= {
>> javax.servlet.http.HttpSessionListener.class,
>> ServletContextListener.class
>> },
>> property= {
>> "osgi.http.whiteboard.listener=true",
>> "osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name
>> =WebviewerServletContextHelper)",
>> "listener.name=WebviewerServletContextListener"
>> }
>> )
>> public final class ZkListener implements 
>> javax.servlet.http.HttpSessionListener, ServletContextListener {}
>>
>> Where should i start debugging this?
>>
>> By the way, I tried to the command to run test on jetty that you 
>> suggested and i got:
>> [INFO] 
>> ------------------------------------------------------------------------
>> [INFO] BUILD FAILURE
>> [INFO] 
>> ------------------------------------------------------------------------
>> [INFO] Total time: 19.390 s
>> [INFO] Finished at: 2019-02-14T17:32:16-05:00
>> [INFO] Final Memory: 24M/274M
>> [INFO] 
>> ------------------------------------------------------------------------
>> [ERROR] Failed to execute goal on project pax-web-itest-container-jetty: 
>> Could not resolve dependencies for project 
>> org.ops4j.pax.web.itest.container:pax-web-itest-container-jetty:jar:7.2.9-SNAPSHOT:
>>  
>> Failed to collect dependencies at 
>> org.ops4j.pax.web.itest:pax-web-itest-base:jar:7.2.9-SNAPSHOT: Failed to 
>> read artifact descriptor for 
>> org.ops4j.pax.web.itest:pax-web-itest-base:jar:7.2.9-SNAPSHOT: Could not 
>> transfer artifact 
>> org.ops4j.pax.web.itest:pax-web-itest-base:pom:7.2.9-SNAPSHOT from/to 
>> prime-repo (http://repository.primefaces.org): 
>> sun.security.validator.ValidatorException: PKIX path building failed: 
>> sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
>> valid certification path to requested target -> [Help 1]
>>
>> Not sure what is wrong with my cert.
>>
>> On Tue, Oct 2, 2018 at 4:19 AM Grzegorz Grzybek <[email protected]> 
>> wrote:
>>
>>> Hello
>>>
>>> Sorry for late answer. There's testListenersWithHttpContext() test 
>>> here: 
>>> https://github.com/ops4j/org.ops4j.pax.web/blob/pax-web-7.2.x/pax-web-itest/pax-web-itest-common/src/main/java/org/ops4j/pax/web/itest/common/AbstractWhiteboardR6IntegrationTest.java#L289
>>>
>>> It does exactly what you're trying to achieve, but without SCR - only by 
>>> registering relevant services. You can run the test from within any of 
>>> three container itest projects:
>>>
>>> mvn clean verify -f 
>>> pax-web-itest/pax-web-itest-container/pax-web-itest-container-jetty/ 
>>> -Dit.test=WhiteboardR6IntegrationTest#testListenersWithHttpContext
>>> mvn clean verify -f 
>>> pax-web-itest/pax-web-itest-container/pax-web-itest-container-tomcat/ 
>>> -Dit.test=WhiteboardR6IntegrationTest#testListenersWithHttpContext
>>> mvn clean verify -f 
>>> pax-web-itest/pax-web-itest-container/pax-web-itest-container-undertow/ 
>>> -Dit.test=WhiteboardR6IntegrationTest#testListenersWithHttpContext
>>>
>>> I'm not sure what may be your problem (maybe you'll share your maven 
>>> project via github?) - but this may be related to some other bundles you 
>>> have installed in your runtime (pure Equinox? pax-exam test? Karaf based on 
>>> Equinox?) - which may cause problems with finding services you register by 
>>> pax-web-extender-whiteboard.
>>>
>>> best regards
>>> Grzegorz Grzybek
>>>
>>> pon., 24 wrz 2018 o 22:13 Nhut Thai Le <[email protected]> 
>>> napisał(a):
>>>
>>>> Hello,
>>>>
>>>> I tried to hook a servletContextListener to my custom 
>>>> ServletContextHelper but the contextInitialized method is not called.
>>>> -------------------Here is my ServletContextHelper:------------
>>>> @Component(
>>>> service = ServletContextHelper.class,
>>>> property = {
>>>> "osgi.http.whiteboard.context.name=ZkComponentsServletContextHelper",
>>>> "osgi.http.whiteboard.context.path=/components"
>>>> }
>>>> )
>>>> public class ZkComponentsServletContextHelper extends 
>>>> ServletContextHelper {...}
>>>> --------------------------------My ServletContextListener----------
>>>> @Component(
>>>> name="ZkListener",
>>>> service= {
>>>> ServletContextListener.class
>>>> },
>>>> property= {
>>>> "osgi.http.whiteboard.listener=true",
>>>> "osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name
>>>> =ZkComponentsServletContextHelper)"
>>>> }
>>>> )
>>>> public final class ZkSessionListener implements ServletContextListener {
>>>> private WebManager webManager;
>>>>
>>>> @Override
>>>> public void contextInitialized(ServletContextEvent sce) {
>>>> final ServletContext ctx = sce.getServletContext();
>>>> if (WebManager.getWebManagerIfAny(ctx) == null) {
>>>> webManager = new WebManager(ctx, "/zkau");
>>>> } else {
>>>> throw new IllegalStateException("ZK WebManager already exists. Could 
>>>> not initialize via Spring Boot configuration.");
>>>> }
>>>> }
>>>> ------------------------------Finally, my simple servlet-------------
>>>> @Component(
>>>> service = Servlet.class,
>>>> property= {
>>>> "osgi.http.whiteboard.servlet.pattern=*.zul",
>>>> "osgi.http.whiteboard.servlet.pattern=*.zhtml",
>>>> "osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name
>>>> =ZkComponentsServletContextHelper)"
>>>> }
>>>> )
>>>> public class ZulExtensionServlet extends HttpServlet{..}
>>>> ---------------------equinox bundle info-------------
>>>> {org.osgi.service.http.context.ServletContextHelper}={service.id=95, 
>>>> osgi.http.whiteboard.context.name=ZkComponentsServletContextHelper, 
>>>> service.bundleid=59, service.scope=bundle, 
>>>> component.name=com.castortech.iris.zk.components.ZkComponentsServletContextHelper,
>>>>  
>>>> osgi.http.whiteboard.context.path=/components, component.id=3}
>>>>     
>>>> {javax.servlet.Servlet}={service.id=97, service.bundleid=59, 
>>>> service.scope=bundle, 
>>>> osgi.http.whiteboard.servlet.pattern=[*.zul,*.zhtml], 
>>>> osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name=ZkComponentsServletContextHelper),
>>>>  
>>>> component.name=com.castortech.iris.zk.components.ZulExtensionServlet, 
>>>> component.id=5}
>>>>     
>>>> {javax.servlet.ServletContextListener}={service.id=98, 
>>>> service.bundleid=59, service.scope=bundle, 
>>>> osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name=ZkComponentsServletContextHelper),
>>>>  
>>>> osgi.http.whiteboard.listener=true, component.name=ZkListener, 
>>>> component.id=6}
>>>>     
>>>> {javax.servlet.ServletContext}={osgi.web.version=1.0.0.qualifier, 
>>>> osgi.web.contextpath=/components, service.id=124, 
>>>> osgi.web.symbolicname=com.castortech.iris.zk.components, 
>>>> service.bundleid=59, service.scope=singleton, 
>>>> osgi.web.contextname=ZkComponentsServletContextHelper}
>>>>
>>>>
>>>> As you can see, both the ServletContextListener and the servlet are 
>>>> bound to the same ServletContextHelper and there is a ServletContext 
>>>> created from the ServletContextHelper, however, the contextInitialized 
>>>> method was never called. Am I missing anything?
>>>>
>>>> Thai
>>>>
>>>> -- 
>>>> -- 
>>>> ------------------
>>>> OPS4J - http://www.ops4j.org - [email protected]
>>>>
>>>> --- 
>>>> You received this message because you are subscribed to the Google 
>>>> Groups "OPS4J" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>> -- 
>>> -- 
>>> ------------------
>>> OPS4J - http://www.ops4j.org - [email protected]
>>>
>>> --- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "OPS4J" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> -- 
>> Castor Technologies Inc
>> 460 rue St-Catherine St Ouest, Suite 613 
>> Montréal, Québec H3B-1A7
>> (514) 360-7208 o
>> (514) 798-2044 f
>> [email protected]
>> www.castortech.com 
>>
>> CONFIDENTIALITY NOTICE: The information contained in this e-mail is 
>> confidential and may be proprietary information intended only for the use 
>> of the individual or entity to whom it is addressed. If the reader of this 
>> message is not the intended recipient, you are hereby notified that any 
>> viewing, dissemination, distribution, disclosure, copy or use of the 
>> information contained in this e-mail message is strictly prohibited. If you 
>> have received and/or are viewing this e-mail in error, please immediately 
>> notify the sender by reply e-mail, and delete it from your system without 
>> reading, forwarding, copying or saving in any manner. Thank you.
>> AVIS DE CONFIDENTIALITE: L’information contenue dans ce message est 
>> confidentiel, peut être protégé par le secret professionnel et est réservé 
>> à l'usage exclusif du destinataire. Toute autre personne est par les 
>> présentes avisée qu'il lui est strictement interdit de diffuser, distribuer 
>> ou reproduire ce message. Si vous avez reçu cette communication par erreur, 
>> veuillez la détruire immédiatement et en aviser l'expéditeur. Merci.
>>
>> -- 
>> -- 
>> ------------------
>> OPS4J - http://www.ops4j.org - [email protected]
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "OPS4J" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
-- 
------------------
OPS4J - http://www.ops4j.org - [email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"OPS4J" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ops4j/cb747b43-f883-4c89-92a7-176f03e7f991n%40googlegroups.com.

Reply via email to