Ok, I drilled it down to one issue: the following code in DefaultFaceletFactory._createViewMetadataFacelet
String faceletId = "/"+ _removeFirst(url.getFile(), getBaseUrl().getFile()); runs into the nullpointer because getBaseUrl, tries to resolve "/" as resource which doesn't exist and therefore is null, therefore returning a nullpointer as a getFile on null doesn't work. Now I'm out of Ideas why this does work for Pax Web 4, but not for 3.1 regards, Achim 2014-09-13 13:53 GMT+02:00 Achim Nierbeck <[email protected]>: > For your info, at Pax Web those Issues are connected to this: > > https://ops4j1.jira.com/browse/PAXWEB-732 > https://ops4j1.jira.com/browse/PAXWEB-733 > > regards, Achim > > 2014-09-13 0:05 GMT+02:00 Achim Nierbeck <[email protected]>: > >> Hi, >> >> as MyFaces has been the only OSGi Ready JSF impl, I only used that one. >> It might be an issue of Pax Web though, because it works with Pax Web >> 4.0. >> >> I'll try to investigate ore on this. >> >> rgards, Achim >> >> 2014-09-12 22:16 GMT+02:00 Paul Spencer <[email protected]>: >> >>> Achim, >>> Have you tried using a different JSF 2.2 implementation? >>> >>> I suspect there is a regression bug in MyFaces 2.2.4, but the developer >>> have yet to acknowledge one. >>> >>> Paul Spencer >>> >>> >>> On Sep 12, 2014, at 12:08 PM, Achim Nierbeck <[email protected]> >>> wrote: >>> >>> > Ok, >>> > >>> > so far I got it working properly, only the PrimeFaces integration test >>> isn't working. >>> > Though I sometimes think those simple tests I got aren't really a >>> "good" match to catch all trip-wires regarding JSF. >>> > >>> > The failure I got for PrimeFaces is actually the same you reported. >>> > So I'll try to look into this a bit more. >>> > >>> > regards, Achim >>> > >>> > >>> > >>> > >>> > 2014-09-12 15:29 GMT+02:00 Achim Nierbeck <[email protected]>: >>> > Hi Paul, >>> > >>> > After I've got it working in a integration test, I'm gonna check how a >>> backport to Pax Web 3.1.x turns out, cause I think this should work there >>> as well already. I'll keep you posted. >>> > >>> > regards, Achim >>> > >>> > >>> > 2014-09-12 4:31 GMT+02:00 Paul Spencer <[email protected]>: >>> > Achim, >>> > This is encouraging! >>> > >>> > Will this be supported in Karaf 3.0.x? >>> > >>> > Paul Spencer >>> > >>> > >>> > On Sep 11, 2014, at 7:22 PM, Achim Nierbeck <[email protected]> >>> wrote: >>> > >>> > > Hi Paul, >>> > > >>> > > I tested to use Pax Web 4.0 with MyFaces 2.2.4 and it worked very >>> well, right now I'm working on fixing the automatic test for the 4.0.x >>> branch. >>> > > >>> > > regards, Achim >>> > > >>> > > 2014-09-06 3:18 GMT+02:00 Paul Spencer <[email protected]>: >>> > > Achim, >>> > > MyFaces is trying to create a Facelet from the url >>> “bundle://636.1:0/helloWorld.xhtml” and I suspect the second colon is >>> causing a problem. I have posted a question on the MyFaces list asking >>> this question. >>> > > Creating Facelet used to create View Metadata for: >>> bundle://636.1:0/helloWorld.xhtml >>> > > >>> > > Paul Spencer >>> > > >>> > > On Sep 5, 2014, at 11:56 AM, Achim Nierbeck <[email protected]> >>> wrote: >>> > > >>> > > > hmm, I've just checked, looks like you're working on the myfaces >>> project. >>> > > > So looks like I could learn a lot from you :D >>> > > > >>> > > > regards, Achim >>> > > > >>> > > > >>> > > > 2014-09-05 17:53 GMT+02:00 Achim Nierbeck <[email protected] >>> >: >>> > > > Paul, >>> > > > >>> > > > short answer no. >>> > > > Cause the use case you used is the only test I have right now for >>> JSF. >>> > > > Long answer, JSF is just major PITA with lots of strange >>> classloading going on under the hood. >>> > > > I'm glad I somehow got it working so right now Myfaces 2.1.x is >>> the only version working. >>> > > > >>> > > > So if there is one standing up to get this fixed, be my guest :) >>> > > > >>> > > > regards, Achim >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > 2014-09-05 17:47 GMT+02:00 Paul Spencer <[email protected]>: >>> > > > Achim, >>> > > > Use Case aside, should MyFaces 2.2.x work in Karaf 3.0.1? >>> > > > >>> > > > Paul Spencer >>> > > > >>> > > > On Sep 5, 2014, at 11:40 AM, Achim Nierbeck < >>> [email protected]> wrote: >>> > > > >>> > > > > Hi, >>> > > > > >>> > > > > the use case you're referencing is using MyFaces 2.1.9. >>> > > > > Anything else has not been tested so far. >>> > > > > >>> > > > > regards, Achim >>> > > > > >>> > > > > >>> > > > > >>> > > > > 2014-09-05 16:13 GMT+02:00 Paul Spencer <[email protected]>: >>> > > > > I am getting the following exception when browsing to a JSF page >>> when using MyFaces 2.2.4 and Karaf 3.0.1. No exception is thrown when >>> using MyFaces 2.1.15. The only difference is which version of myfaces-api >>> and myfaces-impl are installed. >>> > > > > >>> > > > > Should MyFaces 2.2 work in Karaf 3.0.1? >>> > > > > If so, what needed to make it work? >>> > > > > >>> > > > > *** >>> > > > > * Exception thrown when using MyFaces 2.2.4 >>> > > > > *** >>> > > > > >>> > > > > java.lang.NullPointerException >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory._createViewMetadataFacelet(DefaultFaceletFactory.java:410) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:57) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:131) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory$2.newInstance(DefaultFaceletFactory.java:128) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.FaceletCacheImpl.getViewMetadataFacelet(FaceletCacheImpl.java:114) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.FaceletCacheImpl.getViewMetadataFacelet(FaceletCacheImpl.java:51) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getViewMetadataFacelet(DefaultFaceletFactory.java:509) >>> > > > > at >>> org.apache.myfaces.view.facelets.impl.DefaultFaceletFactory.getViewMetadataFacelet(DefaultFaceletFactory.java:493) >>> > > > > at >>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._getViewMetadataFacelet(FaceletViewDeclarationLanguage.java:2584) >>> > > > > at >>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.access$000(FaceletViewDeclarationLanguage.java:147) >>> > > > > at >>> org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage$FaceletViewMetadata.createMetadataView(FaceletViewDeclarationLanguage.java:2738) >>> > > > > at >>> org.apache.myfaces.lifecycle.RestoreViewExecutor.execute(RestoreViewExecutor.java:243) >>> > > > > at >>> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:196) >>> > > > > at >>> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:143) >>> > > > > at >>> javax.faces.webapp.FacesServlet.service(FacesServlet.java:198) >>> > > > > at >>> org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684) >>> > > > > at >>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496) >>> > > > > at >>> org.ops4j.pax.web.service.internal.WelcomeFilesFilter.doFilter(WelcomeFilesFilter.java:185) >>> > > > > at >>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1467) >>> > > > > at >>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) >>> > > > > at >>> org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:69) >>> > > > > at >>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) >>> > > > > at >>> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) >>> > > > > at >>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) >>> > > > > at >>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) >>> > > > > at >>> org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:240) >>> > > > > at >>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) >>> > > > > at >>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) >>> > > > > at >>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) >>> > > > > at >>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) >>> > > > > at >>> org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:77) >>> > > > > >>> > > > > >>> > > > > I am using the following to as a use case: >>> > > > > >>> https://github.com/ops4j/org.ops4j.pax.web/tree/master/samples/war-jsf-primefaces >>> > > > > >>> > > > > Paul Spencer >>> > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > > > -- >>> > > > > >>> > > > > 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/> >>> > > > > >>> > > > > Software Architect / Project Manager / Scrum Master >>> > > > > >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > -- >>> > > > >>> > > > 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/> >>> > > > >>> > > > Software Architect / Project Manager / Scrum Master >>> > > > >>> > > > >>> > > > >>> > > > >>> > > > -- >>> > > > >>> > > > 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/> >>> > > > >>> > > > Software Architect / Project Manager / Scrum Master >>> > > > >>> > > >>> > > >>> > > >>> > > >>> > > -- >>> > > >>> > > 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/> >>> > > >>> > > Software Architect / Project Manager / Scrum Master >>> > > >>> > >>> > >>> > >>> > >>> > -- >>> > >>> > 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/> >>> > >>> > Software Architect / Project Manager / Scrum Master >>> > >>> > >>> > >>> > >>> > -- >>> > >>> > 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/> >>> > >>> > Software Architect / Project Manager / Scrum Master >>> > >>> >>> >> >> >> -- >> >> 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/> >> >> Software Architect / Project Manager / Scrum Master >> >> > > > -- > > 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/> > > Software Architect / Project Manager / Scrum Master > > -- 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/> Software Architect / Project Manager / Scrum Master
