Hi, I've been looking more into Spring Boot, and I've converted the standard jsf guessNumber example to use it.
The trick is that spring-boot needs a patch to make jetty work correctly with jsp/jstl etc. Here's a link to the relevant pull request: https://github.com/spring-projects/spring-boot/pull/5290 Having locally built spring-boot with this patch, everything started to work (using jetty-9.2.x). I'm attaching the guessNumber-springboot example project, so you can see what I did to make jsf work. I should point out that I based some of this on: https://github.com/stephanrauh/JSF-on-Spring-Boot Jan On 30 March 2016 at 07:21, Bjørn T Johansen <[email protected]> wrote: > Thx! Lot of info here, will have a look... :) > > BTJ > > On 29.03.2016 08:35, Jan Bartel wrote: > > I can't see anything particularly wrong with the dependencies, except you > need to remove com.sun.el:el-ri:1.0. > > I'm attaching a very small example project, which is the standard jsf > guessNumber webapp, configured to run with the jetty maven plugin. The > only trick to getting this to work is to ensure that: > > 1. the jsf jars are on the container classpath and not the webapp > classpath (in this case this is achieved by adding the jsf jars to the > plugin dependencies) > 2. the jsf jars are scanned by jetty (this is achieved by the > configuration element > <containerIncludeJarPattern>.*/jsf-[^/]*\.jar$</containerIncludeJarPattern> > > Point 2 above is actually a jetty maven plugin specific way of telling > jetty that there are some jars that need scanning for tlds etc. > > If you're not using the maven plugin, then the way to do it is to set up a > context attribute called > "org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern" to some > regexps that match the names of the jars that need scanning. In the jetty > distro, the pattern in the etc/jetty-deploy.xml file is: > .*/[^/]*servlet-api-[^/]*\.jar$|.*/javax.servlet.jsp.jstl-.*\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\.jar$ > > So to add in the pattern for jsf, the full final pattern would be: > > .*/jsf-[^/]*\.jar$| > .*/[^/]*servlet-api-[^/]*\.jar$|.*/javax.servlet.jsp.jstl-.*\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\.jar$ > > Note that if you need to set this pattern in code instead, you'd need to > escape the backslashes like so: > > webappContext.setAttribute("org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern", > > ".*/jsf-[^/]*\\.jar$| > .*/[^/]*servlet-api-[^/]*\\.jar$|.*/javax.servlet.jsp.jstl-.*\\.jar$|.*/org.apache.taglibs.taglibs-standard-impl-.*\\.jar$"); > > Try playing around with the guessNumber example to make it more like your > setup. My guess is that the jsf jars just aren't being initialized > correctly, most probably because they're not being scanned, hence the need > for the org.eclipse.jetty.server.webapp.ContainerIncludeJarPattern > attribute. > > You can also turn on debug logging for annotations > (org.eclipse.jetty.annotations.LEVEL=DEBUG if using standard jetty logging) > and verify that you see the jsf jars being included for scanning. You > should see lines like: > > Scanning jar [path to]/jsf-impl-2.2.13.jar > > Jan > > > On 27 March 2016 at 23:42, Bjørn T Johansen <[email protected]> wrote: > >> Checked my dependencies but I can not find anything strange but perhaps >> you guys can, I have included the dependencies as a attachment... >> >> BTJ >> >> On Sun, 27 Mar 2016 15:30:55 +1100 >> Jan Bartel <[email protected]> wrote: >> >> > I don't think your list of dependencies can be correct yet - something >> must >> > be transitively including older versions. The org.mortbay.jasper jars >> are >> > based on Apache's jasper that implement jsp version 2.3. >> > >> > I think to get any further with this you are going to have to post a >> full >> > list of your dependencies (including the jetty jars) and any config you >> > pass in to spring boot so we can see what jars are on the classpath. >> > >> > regards >> > Jan >> > >> > On 26 March 2016 at 21:30, Bjørn T Johansen <[email protected]> wrote: >> > >> > > Well, I do not actually use jsp but I think JSF is pulling in this. >> If I >> > > remove the jsp jars, I get the following exception: >> > > >> > > java.lang.ClassNotFoundException: javax.servlet.jsp.JspFactory >> > > >> > > What's the best way to get rid of this when running Jetty? (When >> running >> > > Tomcat, I have to include >> org.apache.tomcat.embed:tomcat-embed-jasper). >> > > >> > > >> > > I also get this when compiling: >> > > >> > > Error:(129, 70) java: cannot access javax.el.ELException >> > > class file for javax.el.ELException not found >> > > >> > > That's why I have included org.glassfish.web:el-impl:2.2 >> > > >> > > >> > > And I tried to use the jars you listed but then I get the following >> > > exception: >> > > >> > > caused by: com.sun.faces.config.ConfigurationException: It appears >> the JSP >> > > version of the container is older than 2.1 and unable to locate the >> EL RI >> > > expression factory, com.sun.el.ExpressionFactoryImpl. If not using >> JSP or >> > > the EL RI, make sure the context initialization parameter, >> > > com.sun.faces.expressionFactory, is properly set. at >> > > >> > > >> com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:694) >> > > >> > > >> > > I solved this by adding com.sun.el:el-ri:1.0 and now it compiles >> again and >> > > runs but I still get the same message in the log. >> > > >> > > >> > > BTJ >> > > >> > > >> > > On Sat, 26 Mar 2016 10:47:19 +1100 >> > > Jan Bartel <[email protected]> wrote: >> > > >> > > > Bjørn, >> > > > >> > > > I would recommend that you use the jsp jars that we distribute with >> > > jetty. >> > > > You'll need these dependencies: >> > > > >> > > > for jsp: >> > > > org.eclipse.jetty:apache-jsp:jar:<version of jetty you're using> >> > > > javax.servlet:javax.servlet-api:jar:3.1.0 >> > > > org.mortbay.jasper:apache-jsp:jar:8.0.27 >> > > > org.mortbay.jasper:apache-el:jar:8.0.27 >> > > > org.eclipse.jdt.core.compiler:ecj:jar:4.4.2 >> > > > >> > > > for jstl: >> > > > org.apache.taglibs:taglibs-standard-spec:jar:1.2.5 >> > > > org.apache.taglibs:taglibs-standard-impl:jar:1.2.5 >> > > > >> > > > Also have a read of the jetty page about jsp and follow the links to >> > > > embedded examples: >> > > > >> > > >> http://www.eclipse.org/jetty/documentation/9.3.0.v20150612/configuring-jsp.html >> > > > >> > > > Jan >> > > > >> > > > On 26 March 2016 at 07:42, Bjørn T Johansen <[email protected]> wrote: >> > > > >> > > > > Hi. >> > > > > >> > > > > I am trying to switch my Spring Boot, with JSF 2.2, projects from >> using >> > > > > embedded Tomcat to using embedded Jetty and I seems to have it >> working >> > > now, >> > > > > just one annoying log message in the log that I can not seem to >> get >> > > rid of: >> > > > > >> > > > > JSF1027: [null] The ELResolvers for JSF were not registered with >> the >> > > JSP >> > > > > container. >> > > > > >> > > > > >> > > > > My dependencies looks like this: >> > > > > >> > > > > dependencies { >> > > > > >> compile('org.springframework.boot:spring-boot-starter-actuator') >> > > > > compile('org.springframework.boot:spring-boot-starter-jdbc') { >> > > > > exclude group: 'org.apache.tomcat' , module: 'tomcat-jdbc' >> > > > > } >> > > > > compile('org.projectlombok:lombok:1.16.6') >> > > > > compile('org.springframework.boot:spring-boot-starter-mail') >> > > > > >> compile('org.springframework.boot:spring-boot-starter-security') >> > > > > compile('org.springframework.boot:spring-boot-starter-web') { >> > > > > exclude module: 'spring-boot-starter-tomcat' >> > > > > exclude module: 'spring-boot-starter-validation' >> > > > > exclude group: 'org.apache.tomcat:embed' , module: >> > > > > 'tomcat-embed-el' >> > > > > } >> > > > > compile('org.springframework.boot:spring-boot-starter-jetty') >> > > > > compile('com.zaxxer:HikariCP:2.4.5') >> > > > > compile "org.primefaces:primefaces:$primefaces" >> > > > > compile 'com.google.code.gson:gson:2.6.2' >> > > > > compile 'org.apache.commons:commons-lang3:3.3.2' >> > > > > compile "com.sun.faces:jsf-api:$jsf" >> > > > > compile "com.sun.faces:jsf-impl:$jsf" >> > > > > compile "org.jasypt:jasypt:$jasypt" >> > > > > compile "org.jasypt:jasypt-springsecurity3:$jasypt" >> > > > > compile "org.jasypt:jasypt-spring31:$jasypt" >> > > > > compile 'joda-time:joda-time:2.9.2' >> > > > > compile 'com.google.guava:guava:19.0' >> > > > > compile('javax.servlet:jsp-api:2.0') >> > > > > compile('javax.servlet:javax.servlet-api:3.1.0') >> > > > > compile('org.glassfish.web:el-impl:2.2') >> > > > > runtime('org.postgresql:postgresql:9.4.1208') >> > > > > } >> > > > > >> > > > > >> > > > > First, is this a correct configured Jetty project? Also, what is >> > > missing, >> > > > > can I get rid of that log message or can I just ignore it? >> > > > > >> > > > > >> > > > > Regards, >> > > > > >> > > > > BTJ >> > > > > >> > > > > -- >> > > > > >> > > > > >> > > >> ----------------------------------------------------------------------------------------------- >> > > > > Bjørn T Johansen >> > > > > >> > > > > [email protected] >> > > > > >> > > > > >> > > >> ----------------------------------------------------------------------------------------------- >> > > > > Someone wrote: >> > > > > "I understand that if you play a Windows CD backwards you hear >> strange >> > > > > Satanic messages" >> > > > > To which someone replied: >> > > > > "It's even worse than that; play it forwards and it installs >> Windows" >> > > > > >> > > > > >> > > >> ----------------------------------------------------------------------------------------------- >> > > > > _______________________________________________ >> > > > > jetty-users mailing list >> > > > > [email protected] >> > > > > To change your delivery options, retrieve your password, or >> unsubscribe >> > > > > from this list, visit >> > > > > https://dev.eclipse.org/mailman/listinfo/jetty-users >> > > > >> > > > >> > > > >> > > > >> > > _______________________________________________ >> > > jetty-users mailing list >> > > [email protected] >> > > To change your delivery options, retrieve your password, or >> unsubscribe >> > > from this list, visit >> > > https://dev.eclipse.org/mailman/listinfo/jetty-users >> > > >> > >> > >> > >> >> _______________________________________________ >> jetty-users mailing list >> [email protected] >> To change your delivery options, retrieve your password, or unsubscribe >> from this list, visit >> https://dev.eclipse.org/mailman/listinfo/jetty-users > > > > > -- > Jan Bartel <[email protected]> > www.webtide.com > *Expert assistance from the creators of Jetty and CometD* > > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users > > > > _______________________________________________ > jetty-users mailing list > [email protected] > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/jetty-users > -- Jan Bartel <[email protected]> www.webtide.com *Expert assistance from the creators of Jetty and CometD*
guessNumber-springboot.tar
Description: Unix tar archive
_______________________________________________ jetty-users mailing list [email protected] To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/jetty-users
