Hi Achim, I created https://ops4j1.jira.com/browse/PAXWEB-1072 for it.
I don't think it ever worked, there is just no coding for it in TomcatResourceServlet. I will see if I can do something about it. Best regards Stephan Am Montag, 13. März 2017 08:36:54 UTC+1 schrieb Achim Nierbeck: > > Hi Stephan, > > we will need a new Issue for that then. > Though I'm wondering if that one slipped till now or if it is some sort of > regression. > > regards, Achim > > > 2017-03-13 7:46 GMT+01:00 Stephan Siano <stepha...@sap.com <javascript:>>: > >> HI Achim, >> >> concerning your question about the welcome file support: I can confirm >> that welcom file configurations do not work (at least not configured in >> web.xml). That's the reason why the majority of the remaining tomcat >> integration tests do not run. >> >> In the moment, I am a bit at loss, why this does not work. Is there any >> coding concerning the welcome file support in pax-web-jetty? >> >> Best regards >> Stephan >> >> Am Samstag, 11. März 2017 22:03:15 UTC+1 schrieb Achim Nierbeck: >>> >>> Hi Stephan, >>> >>> cool did take a look at it. >>> Just some comments but nothing important. >>> Feel free to merge any time. >>> >>> regards, Achim >>> >>> >>> 2017-03-11 21:47 GMT+01:00 Stephan Siano <stepha...@sap.com>: >>> >>>> Hi Achim, >>>> >>>> I created pull request >>>> https://github.com/ops4j/org.ops4j.pax.web/pull/77 for the change. >>>> Could you have a look? I am not absolutely sure about the things I am >>>> doing >>>> to the class loaders (but JSF will not run without these changes). >>>> >>>> Best regards >>>> Stephan >>>> >>>> Am Samstag, 11. März 2017 17:26:25 UTC+1 schrieb Achim Nierbeck: >>>>> >>>>> Hi Stephan, >>>>> >>>>> sounds great. >>>>> I think PAXWEB-993 is fine as, those are findings on fixing that. >>>>> >>>>> regards, Achim >>>>> >>>>> >>>>> 2017-03-11 9:59 GMT+01:00 Stephan Siano <stepha...@sap.com>: >>>>> >>>>>> Hi Achim, >>>>>> >>>>>> The servlet is not working if the jfaces Excepton is thrown during >>>>>> startup of the servlet context. >>>>>> >>>>>> However, I think I got this running now. There were actually multiple >>>>>> issues that were preventing the tests from running (at least the one I >>>>>> checked for now, I hope the others are easier): >>>>>> 1. el-Support was not running in tomcat. The el-lookup only works if >>>>>> the pax-web-jsp bundle (where the el-Implementation is located) is in >>>>>> the >>>>>> classpath. I copied some code from the jetty implementation that sets a >>>>>> parent classloader to the conecxt and imported the javax.el bundles in >>>>>> the >>>>>> pax-web-tomcat bundles as optional dependencies for that (the same >>>>>> imports >>>>>> as in pax-web-jetty). >>>>>> 2. The jfaces library creates an internal map for the factories. The >>>>>> key for the map is the thread context classloader, so the lookup will >>>>>> fail >>>>>> if the initialization of the factories is done with a different thread >>>>>> context classloader than the initi call, you see the second exception I >>>>>> posted intially. It also means that the operation that is attempted >>>>>> fails >>>>>> (which may be less critical for other operations than the init call). >>>>>> Removing two thread context class loader changes from the code made the >>>>>> servlet finally work. Unfortunately I don't know why these class loader >>>>>> changes were there in the first place, so I might have broken something >>>>>> else in the process (need to have a look about this). >>>>>> 3. The tests themselves also had issues: Tomcat does not support >>>>>> welcome files (so the index.jsp has to be called directly). Furthermore >>>>>> the >>>>>> test comcat server is running with a different port than the itest-jetty >>>>>> server, but the second server call in one of the tests was to the jetty >>>>>> port (so this can never have worked). >>>>>> >>>>>> If I get this running smoothly, do I cfeate the pull request for >>>>>> PAXWEB-993 (as it also enables the JSF tests, or do I create a new JIRA >>>>>> task (because it actually also fixes JSF support with tomcat). >>>>>> >>>>>> Best regards >>>>>> Stephan >>>>>> >>>>>> >>>>>> >>>>>> Am Freitag, 10. März 2017 16:58:58 UTC+1 schrieb Achim Nierbeck: >>>>>>> >>>>>>> Hi Stephan, >>>>>>> >>>>>>> the second exception you also get with Jetty ... never found the >>>>>>> reason for it :/ >>>>>>> did you check if by any chances the JSF pages actually do work? >>>>>>> >>>>>>> regards, Achim >>>>>>> >>>>>>> >>>>>>> 2017-03-10 16:46 GMT+01:00 Stephan Siano <stepha...@sap.com>: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I have tried to enable the JSF based integration tests with the >>>>>>>> tomcat web container. These tests fail becasue the war-jsf war does >>>>>>>> not >>>>>>>> start. >>>>>>>> >>>>>>>> The first issue I see is that the expression factory cannot be >>>>>>>> found. >>>>>>>> >>>>>>>> javax.el.ELException: Unable to find ExpressionFactory of type: >>>>>>>> org.apache.el.ExpressionFactoryImpl >>>>>>>> at >>>>>>>> javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:165)[104:org.ops4j.pax.tipi.tomcat-embed-core:8.0.14.1] >>>>>>>> at >>>>>>>> javax.el.ExpressionFactory.newInstance(ExpressionFactory.java:104)[104:org.ops4j.pax.tipi.tomcat-embed-core:8.0.14.1] >>>>>>>> >>>>>>>> >>>>>>>> I have looked into the jetty code and they replace the classloader >>>>>>>> for the context (which is a ResouceDelegatingBundleClassloader for the >>>>>>>> war) >>>>>>>> with a newly instantiated ResourceDelegatingBundleClassloader, which >>>>>>>> uses >>>>>>>> the pax-web-jetty-bundle classloader as a parent classloader. If I do >>>>>>>> the >>>>>>>> same in pax-web-tomcat (with pax-web-tomcat-bundle as a parent >>>>>>>> classloader) >>>>>>>> el works, but now I get another error: >>>>>>>> >>>>>>>> org.ops4j.pax.web.pax-web-runtime[org.ops4j.pax.web.service.internal.HttpServiceStarted] >>>>>>>> >>>>>>>> : Exception finalizing HttpContext registration >>>>>>>> org.apache.catalina.LifecycleException: Failed to start component >>>>>>>> [StandardEngine[Catalina].StandardHost[localhost].StandardContext[[war-jsf-sample]-org.ops4j.pax.web.extender.war.internal.WebAppWebContainerContext]] >>>>>>>> at >>>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$2$1.call(TomcatServerWrapper.java:903) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$2$1.call(TomcatServerWrapper.java:899) >>>>>>>> at org.ops4j.pax.swissbox.core.Co >>>>>>>> ntextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$2.start(TomcatServerWrapper.java:897) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.internal.HttpServiceStarted.end(HttpServiceStarted.java:1137) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.internal.HttpServiceProxy.end(HttpServiceProxy.java:444) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.RegisterWebAppVisitorWC.end(RegisterWebAppVisitorWC.java:398) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.model.WebApp.accept(WebApp.java:656) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.register(WebAppPublisher.java:228) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:173) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebAppPublisher$WebAppDependencyListener.addingService(WebAppPublisher.java:129) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:941) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:870) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:318) >>>>>>>> at >>>>>>>> org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:261) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebAppPublisher.publish(WebAppPublisher.java:98) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebObserver.deploy(WebObserver.java:217) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.WebObserver$1.doStart(WebObserver.java:172) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.extender.SimpleExtension.start(SimpleExtension.java:59) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.extender.war.internal.extender.AbstractExtender.lambda$createExtension$0(AbstractExtender.java:277) >>>>>>>> at >>>>>>>> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >>>>>>>> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >>>>>>>> at >>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) >>>>>>>> at >>>>>>>> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) >>>>>>>> at >>>>>>>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >>>>>>>> at >>>>>>>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >>>>>>>> at java.lang.Thread.run(Thread.java:745) >>>>>>>> Caused by: java.lang.IllegalStateException: No Factories configured >>>>>>>> for this Application. This happens if the faces-initialization does >>>>>>>> not >>>>>>>> work at all - make sure that you properly include all configuration >>>>>>>> settings necessary for a basic faces application and that all the >>>>>>>> necessary >>>>>>>> libs are included. Also check the logging output of your web >>>>>>>> application >>>>>>>> and your container for any exceptions! >>>>>>>> If you did that and find nothing, the mistake might be due to the >>>>>>>> fact that you use some special web-containers which do not support >>>>>>>> registering context-listeners via TLD files and a context listener is >>>>>>>> not >>>>>>>> setup in your web.xml. >>>>>>>> A typical config looks like this; >>>>>>>> <listener> >>>>>>>> >>>>>>>> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> >>>>>>>> </listener> >>>>>>>> >>>>>>>> at javax.faces.FactoryFinder._getFactory(FactoryFinder.java:305) >>>>>>>> at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:225) >>>>>>>> at javax.faces.webapp.FacesServlet.init(FacesServlet.java:115) >>>>>>>> at org.apache.catalina.startup.To >>>>>>>> mcat$ExistingStandardWrapper.loadServlet(Tomcat.java:868) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$OsgiExistingStandardWrapper$1.call(TomcatServerWrapper.java:289) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$OsgiExistingStandardWrapper$1.call(TomcatServerWrapper.java:284) >>>>>>>> at org.ops4j.pax.swissbox.core.Co >>>>>>>> ntextClassLoaderUtils.doWithClassLoader(ContextClassLoaderUtils.java:60) >>>>>>>> at >>>>>>>> org.ops4j.pax.web.service.tomcat.internal.TomcatServerWrapper$OsgiExistingStandardWrapper.load(TomcatServerWrapper.java:282) >>>>>>>> at >>>>>>>> org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4969) >>>>>>>> at >>>>>>>> org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5255) >>>>>>>> at >>>>>>>> org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) >>>>>>>> ... 29 more >>>>>>>> >>>>>>>> Do you have any idea, what is wrong now? >>>>>>>> >>>>>>>> Best regards >>>>>>>> Stephan >>>>>>>> >>>>>>>> -- >>>>>>>> -- >>>>>>>> ------------------ >>>>>>>> OPS4J - http://www.ops4j.org - op...@googlegroups.com >>>>>>>> >>>>>>>> --- >>>>>>>> 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 ops4j+un...@googlegroups.com. >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> Apache Member >>>>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>>>> Committer & Project Lead >>>>>>> blog <http://notizblog.nierbeck.de/> >>>>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>>>> >>>>>>> Software Architect / Project Manager / Scrum Master >>>>>>> >>>>>>> -- >>>>>> -- >>>>>> ------------------ >>>>>> OPS4J - http://www.ops4j.org - op...@googlegroups.com >>>>>> >>>>>> --- >>>>>> 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 ops4j+un...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> >>>>> Apache Member >>>>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>>>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> >>>>> Committer & Project Lead >>>>> blog <http://notizblog.nierbeck.de/> >>>>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>>>> >>>>> Software Architect / Project Manager / Scrum Master >>>>> >>>>> -- >>>> -- >>>> ------------------ >>>> OPS4J - http://www.ops4j.org - op...@googlegroups.com >>>> >>>> --- >>>> 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 ops4j+un...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> >>> Apache Member >>> Apache Karaf <http://karaf.apache.org/> Committer & PMC >>> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer >>> & Project Lead >>> blog <http://notizblog.nierbeck.de/> >>> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> >>> >>> Software Architect / Project Manager / Scrum Master >>> >>> -- >> -- >> ------------------ >> OPS4J - http://www.ops4j.org - op...@googlegroups.com <javascript:> >> >> --- >> 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 ops4j+un...@googlegroups.com <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > > Apache Member > Apache Karaf <http://karaf.apache.org/> Committer & PMC > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer & > Project Lead > blog <http://notizblog.nierbeck.de/> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS> > > Software Architect / Project Manager / Scrum Master > > -- -- ------------------ OPS4J - http://www.ops4j.org - ops4j@googlegroups.com --- 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 ops4j+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.