Very good. Thanks a lot ! On Friday, January 22, 2021 at 11:37:01 AM UTC+3 [email protected] wrote:
> Hello > > Here you are: > https://github.com/ops4j/org.ops4j.pax.web/blob/master-improvements/pax-web-itest/pax-web-itest-server/src/test/java/org/ops4j/pax/web/itest/server/whiteboard/WhiteboardResourcesTest.java#L122-L123 > > - it registers an Object.class OSGi service with > "osgi.http.whiteboard.resource.pattern" property and also with > osgi.http.whiteboard.context.select=(osgi.http.whiteboard.context.name=c1) > property, so resources are properly available from different (than "/") > context path. > > Also here's a test with welcome files: > https://github.com/ops4j/org.ops4j.pax.web/blob/master-improvements/pax-web-itest/pax-web-itest-server/src/test/java/org/ops4j/pax/web/itest/server/whiteboard/WhiteboardWelcomeFilesTest.java#L135 > > Remember that welcome files are completely forgotten by Whiteboard > specification, although they're very important from the point of view of > resource access. Pax Web 7 had consistency problems to serve welcome files > in the same manner for Tomcat, Jetty and Undertow. Also trailing slash (or > lack of it) was handled differently. In Pax Web it's not. > > regards > Grzegorz Grzybek > > pt., 22 sty 2021 o 09:08 Denis Anisimov <[email protected]> napisał(a): > >> >Yes. It takes so long, because in my daily work I'm a software >> maintainer and my usual practice is to code in conservative way to 1) not >> break anything, 2) anticipate all potential problems with the fix. >> >> Sure, thank you very much for your answers. >> >> One last question which may be important for me: >> is it possible to refer to the ServletContextHelper by the name (via the >> osgi.http.whiteboard.context.select property) when I register web >> resources? >> I mean @HttpWhiteboardResource and refer to 140.6 Registering Resources CMPN >> 7 specification ( or the same can be done via *registerService * >> programmatically). >> >> In the example which you mentioned ServletContextHelper target the >> default context only. >> >> My usecase is: I should register dynamically (programmatically) a couple >> of resources using ServletContextHelper for the same context path which >> Servlet uses : >> I'm using some internal events when servlet becomes initialized and then >> register resources for the same context path. >> I cannot use default context here because it refers to the root context >> path. So I have to use ServletContextHelper with the Servlet context path >> and register >> resources via referring to this ServletContextHelper. >> >> And related question: if filter select for context doesn't work then how >> may I register a servlet for a custom context ? >> Or it doesn't work ONLY being used for ServletContextListener service ? >> On Friday, January 22, 2021 at 10:53:05 AM UTC+3 [email protected] >> wrote: >> >>> Hello (see answers inline) >>> >>> (I also invited you to OPS4J JIRA). >>> >>> czw., 21 sty 2021 o 12:03 Denis Anisimov <[email protected]> napisał(a): >>> >>>> Thanks a lot for your reply. >>>> >>>> Looks like you are talking about this issue: >>>> https://ops4j1.jira.com/browse/PAXWEB-62 >>>> But it's extremely old and it's closed so I though it's resolved. >>>> >>> >>> Yes - it's not about this issue... It's about lifecycle mismatch between >>> the container (like Jetty) and Pax Web Whiteboard. >>> >>> >>>> >>>> In my example it's not known when the listener is registered: before >>>> the servlet is registered and servlet context is initialized or after. >>>> You are right here. >>>> But I've started from another example where the listener is declared >>>> via DS in a separate bundle. >>>> And I had deployed this bundle first : so it's registered as a service >>>> by PAX. >>>> Then I've deployed the web bundle and the listener has not been called >>>> anyway. >>>> >>>> So personally for me regardless of the order of listener registration >>>> (before or after servlet) it's never called. >>>> >>> >>> After reading your later email I think it works in some combination ;) >>> >>> >>>> >>>> The related topic for this : it's possible to declare >>>> `ServletContexHelper` with a given name. Then I can >>>> require to register a `Servlet` , any listener for the context >>>> identified by the name. But what happens if there >>>> is no such context helper registered YET ? In the same way I may >>>> declare the helper in a different bundle and >>>> it's not possible to say when it will be registered : before or after >>>> the servlet. >>>> >>> >>> See for example this specially crafted test: >>> https://github.com/ops4j/org.ops4j.pax.web/blob/master-improvements/pax-web-itest/pax-web-itest-server/src/test/java/org/ops4j/pax/web/itest/server/whiteboard/WhiteboardDynamicContextsTest.java#L92-L118 >>> >>> This test first registers a Servlet and only then a ServletContextHelper >>> matching the servlet's osgi.http.whiteboard.context.select selector. >>> It is then handled by reRegisterWebElements() method >>> <https://github.com/ops4j/org.ops4j.pax.web/blob/785781c3a074481237b7afbbcdd3d67fcac9558e/pax-web-extender-whiteboard/src/main/java/org/ops4j/pax/web/extender/whiteboard/internal/WhiteboardExtenderContext.java#L374> >>> . >>> >>> >>>> So what will happen in that case: will it wait until the context helper >>>> appear with the given name or just >>>> simply fails because there is no helper with this name ? >>>> >>> >>> It can't fail according to specification. What's even more confusing is >>> this scenario: >>> >>> 1) you register a ServletContextHelper with name "x" and context path >>> "/x" >>> 2) you register a Servlet targetting "x" context with /s mapping - so >>> it's available under /x/s >>> 3) you register a ServletContextHelper with name "x" (so conflicting >>> with the first one), "/x2" context path and higher service ranking - your >>> servlet should automatically re-register itself to be available under /x2/s >>> path >>> >>> See also >>> https://github.com/ops4j/org.ops4j.pax.web/blob/master-improvements/pax-web-itest/pax-web-itest-server/src/test/java/org/ops4j/pax/web/itest/server/controller/ServerControllerBasicRegistrationTest.java#L681-L708 >>> >>> to check how servlets conflicting by name impact the context they're >>> registered in... >>> >>> >>>> I expect that it won't fail and wait until the helper appears . Because >>>> otherwise I need to write boilerplate >>>> code which waits for the appearance of the service which normally I >>>> should not even know about >>>> (via ServiceTracker or via @Reference). This is extremely inconvenient. >>>> >>> >>> Yes - this is assured by proper Whiteboard implementation which I >>> believe Pax Web 8 already is. >>> >>> >>>> And the same situation is here with `ServletContexListener`: I have to >>>> wait until it's registered and register the servlet >>>> only after that. >>>> By the way I will check that : whether this work at all or not. >>>> >>>> But anyway: this looks like a bug because you may not rely on the order >>>> of listener registration: the listener should be called even if the >>>> servlet >>>> context >>>> of the web app "has been already initialized". As I understand this is >>>> exactly what https://ops4j1.jira.com/browse/PAXWEB-62 issue says. >>>> >>> >>> PAXWEB-62 probably concerned something more fundamental and I think it >>> was created even before OSGi CMPN Whiteboard spec was created. >>> >>> >>>> Also this is exactly how felix-jetty work: the servlet may be already >>>> intialized (registered and then even initialized) but once the servlet >>>> context listener >>>> is registered it's called anyway. >>>> >>> >>> felix.http is good HttpService/Whiteboard implementation, but everything >>> is implemented under/inside single "dispatcher servlet" registered ONCE to >>> Jetty. Pax Web attempts to leverage as much as possible from the underlying >>> container, which may be dynamically swapped. >>> >>> >>>> That's why the behavior was quite confusing for me. >>>> >>>> But as I understand you confirmed that this does't work properly in pax >>>> web 7 and this is what you are working on for pax web 8. >>>> >>> >>> Yes. It takes so long, because in my daily work I'm a software >>> maintainer and my usual practice is to code in conservative way to 1) not >>> break anything, 2) anticipate all potential problems with the fix. >>> >>> kind regards >>> Grzegorz Grzybek >>> >>> >>>> Thank you . >>>> >>>> >And about Pax Web issues - please let me know the login/email you've >>>> used in ops4j JIRA and I'll give you proper permissions. I can't see >>>> [email protected] <https://groups.google.com/> in OPS4j JIRA user list. >>>> >>>> I've been trying to login with my Google account [email protected] >>>> <https://groups.google.com/> but then it immediately says that this >>>> account has no access to JIRA. >>>> I've registered another account "den *@* admincomps *dot* >>>> ru" >>>> At least I've received the e-mail which confirms the registration. >>>> Could you please try that ? >>>> >>>> >>>> On Thursday, January 21, 2021 at 1:20:49 PM UTC+3 [email protected] >>>> wrote: >>>> >>>>> Hello >>>>> >>>>> I've checked your project and you're nicely using SCRs to register a >>>>> listener and a servlet. >>>>> >>>>> But you can't be sure which SCR component registers its service first! >>>>> And even if you could know it (there are tricks to add a @Reference from >>>>> one @Component to a service of other @Component), you would STILL not be >>>>> sure which will be first tracked by pax-web-extender-whiteboard! >>>>> >>>>> I found this SCR problem which was never resolved in pax web 7 and >>>>> earlier and I described it in my Pax Web 8 refactoring branch: >>>>> https://github.com/ops4j/org.ops4j.pax.web/tree/master-improvements/samples/samples-whiteboard/whiteboard-ds >>>>> >>>>> So I checked that Jetty's "context" is started immediately after your >>>>> servlet is being registered. This is the thread trace that starts Jetty: >>>>> >>>>> "pipe-start 109@10061" prio=5 tid=0x17f nid=NA runnable >>>>> java.lang.Thread.State: RUNNABLE >>>>> at >>>>> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:348) >>>>> at >>>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.startContext(HttpServiceContext.java:392) >>>>> at >>>>> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:855) >>>>> at >>>>> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:275) >>>>> at >>>>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doStart(HttpServiceContext.java:268) >>>>> at >>>>> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72) >>>>> - locked <0x283c> (a java.lang.Object) >>>>> at >>>>> org.ops4j.pax.web.service.jetty.internal.JettyServerImpl$1.start(JettyServerImpl.java:327) >>>>> at >>>>> org.ops4j.pax.web.service.internal.HttpServiceStarted.registerServlet(HttpServiceStarted.java:255) >>>>> ... >>>>> at >>>>> org.ops4j.pax.web.extender.whiteboard.internal.element.ServletWebElement.register(ServletWebElement.java:102) >>>>> ... >>>>> at >>>>> org.ops4j.pax.web.extender.whiteboard.internal.tracker.AbstractTracker.addingService(AbstractTracker.java:44) >>>>> ... >>>>> at org.apache.felix.framework.Felix.registerService(Felix.java:3804) >>>>> at >>>>> org.apache.felix.framework.BundleContextImpl.registerService(BundleContextImpl.java:328) >>>>> at >>>>> org.apache.felix.scr.impl.manager.AbstractComponentManager$3.register(AbstractComponentManager.java:929) >>>>> ... >>>>> at >>>>> org.apache.karaf.bundle.command.BundlesCommand.execute(BundlesCommand.java:55) >>>>> at >>>>> org.apache.karaf.shell.impl.action.command.ActionCommand.execute(ActionCommand.java:84) >>>>> >>>>> and when org.eclipse.jetty.servlet.ServletContextHandler starts, >>>>> there's only one listener available - >>>>> org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer$ContextDestroyListener. >>>>> >>>>> org.eclipse.jetty.server.handler.ContextHandler#callContextInitialized() >>>>> is called when the context is at >>>>> org.eclipse.jetty.server.handler.ContextHandler.ContextStatus#NOTSET >>>>> state >>>>> and then switches to INITIALIZED. >>>>> >>>>> Then when your listener is added (after the servlet), Pax Web 7 tries >>>>> hard to unregister your first servlet (correctly) to register it again >>>>> after registering the listener. >>>>> org.eclipse.jetty.server.handler.ContextHandler#addEventListener() is >>>>> properly called, then >>>>> org.eclipse.jetty.servlet.ServletHandler#setServletMappings(), cache of >>>>> mappings is invalidated. >>>>> >>>>> And while >>>>> org.eclipse.jetty.server.handler.ContextHandler#_servletContextListeners >>>>> contains your org.example.TestServletContextListener, it is NOT called >>>>> because org.eclipse.jetty.server.handler.ContextHandler#_contextStatus is >>>>> not NOTSET, but INITIALIZED. >>>>> >>>>> So that's the problem with Pax Web 7. >>>>> >>>>> I'm really trying hard to handle all such cases in Pax Web 8, but I >>>>> can't do it 8hrs a day ;) That's why it's still not ready yet. >>>>> >>>>> And about Pax Web issues - please let me know the login/email you've >>>>> used in ops4j JIRA and I'll give you proper permissions. I can't see >>>>> [email protected] in OPS4j JIRA user list. >>>>> >>>>> regards >>>>> Grzegorz Grzybek >>>>> >>>>> czw., 21 sty 2021 o 10:12 Denis Anisimov <[email protected]> >>>>> napisał(a): >>>>> >>>>>> 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 >>>>>> >>>>>> <https://groups.google.com/d/msgid/ops4j/cb747b43-f883-4c89-92a7-176f03e7f991n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>> -- >>>> ------------------ >>>> 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/7bfbad5c-0945-4585-9739-6c166a1f21a2n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/ops4j/7bfbad5c-0945-4585-9739-6c166a1f21a2n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> -- >> ------------------ >> 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/f9310059-a8dc-4652-b5e9-64425d15b5dan%40googlegroups.com >> >> <https://groups.google.com/d/msgid/ops4j/f9310059-a8dc-4652-b5e9-64425d15b5dan%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- -- ------------------ 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/72a6370d-4951-46e1-b8ed-272b1ecdac6fn%40googlegroups.com.
