Thanks Joakim, we use Maven to precompile jsp in our other products so we know all about that, but this product still uses Ant and has a really strange layout for historical reasons. We'll have to see what we can do about that.
Cheers, Craig On Fri, Nov 9, 2012 at 11:19 AM, Joakim Erdfelt <[email protected]> wrote: > The use of taglibs under Servlet 3.0 requires that the taglib support > implementation classes are obtained through a server classloader. > It started with the JSTL 1.2 standard, these taglibs cannot be in the > webapp classpath, only the server classpath/classloader. > Jasper Compiler even enforces this requirement. > Jetty itself also enforces this requirement by filtering webapp included > versions. > With ant you cannot satisfy this requirement. > > That being said, you can have precompiled JSP's, but with maven instead. > Here's the same index.jsp, with a web.xml suited for servlet spec 3.0, and > using the jetty 8.1.7 version of the jetty-jspc-maven-plugin. > JSP precompile will work via jetty-jspc-maven-plugin as our plugin creates > the appropriate server classloader tree for the jasper JSPC to work with. > > If you have no servlet-3.0 requirement, stick with the Jetty 7.x series, > as that supports servlet 2.5. > If you have a servlet 3.0 requirement, then consider upgrading your build > infrastructure to maven. > If you cannot upgrade to maven, and are stuck with ant, then you lose the > ability to do JSP precompile if you also use taglibs (especially the > standard JSTL and even the JSF taglibs). > > Know that jetty 7.x and 8.x are released in parallel, from essentially the > same codebase, with the only difference being the servlet spec support. > > Jetty 7.x = Servlet 2.5 > Jetty 8.x = Servlet 3.0 > > Note: Jetty 7.6.8 and Jetty 8.1.8 were released November 8th. > Annoucement: > http://dev.eclipse.org/mhonarc/lists/jetty-announce/msg00035.html > > And for future reference ... > Jetty 9.x (currently in milestones) = Servlet 3.1 (spec still in early > alpha) > > -- > Joakim Erdfelt <[email protected]> > webtide.com <http://www.webtide.com/> > Developer advice, services and support > from the Jetty & CometD experts > eclipse.org/jetty - cometd.org > > > > On Fri, Nov 9, 2012 at 9:02 AM, Craig Ching <[email protected]> wrote: > >> I'm curious if the way Jetty 8 resolves taglibs via the container might >> be causing us problems with this? >> >> >> On Thu, Nov 8, 2012 at 11:01 AM, Craig Ching <[email protected]>wrote: >> >>> Hi Joakim, >>> >>> I am a colleague of Wayne's helping him with his problem. I've attached >>> a simple ant build script and source to reproduce the problem we're >>> having. The build script is from your stackoverflow entry that Wayne >>> linked to. Note there is a circular dependency in that ant script as the >>> "jspc" target depends on the "compile" target and compile is supposed to >>> compile the servlet generated by the "jspc" target. I'm no ant expert, but >>> that doesn't seem to be related to the problem that Wayne is having. >>> >>> Thanks and any help is much appreciated! >>> >>> Cheers, >>> Craig >>> >>> >>> >>> On Thu, Nov 8, 2012 at 10:24 AM, Johnson, Wayne >>> <[email protected]>wrote: >>> >>>> Thanks for the reply.**** >>>> >>>> ** ** >>>> >>>> I don't have anything in the WEB-INF/lib directory. **** >>>> >>>> ** ** >>>> >>>> I do have both javax.servlet.jsp.jstl-1.2.0.v201105211821.jar and >>>> org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar on the >>>> classpath. This is correct, right?**** >>>> >>>> ** ** >>>> >>>> ** ** >>>> >>>> *From:* [email protected] [mailto: >>>> [email protected]] *On Behalf Of *Joakim Erdfelt >>>> *Sent:* Thursday, November 08, 2012 10:06 AM >>>> *To:* JETTY user mailing list >>>> *Subject:* Re: [jetty-users] Problems precompiling with Jasper2 in >>>> Jetty8**** >>>> >>>> ** ** >>>> >>>> Make sure you don't have any conflicting jars between what is in your >>>> WEB-INF/lib and what is in ${jetty.home}/lib/jsp**** >>>> >>>> ** ** >>>> >>>> Keep in mind that Jetty itself, and even the maven plugin, isolates >>>> these differences for you with a webapp classloader.**** >>>> >>>> But with ANT you have no such safety net, so you have to be extra >>>> careful to not have duplicate classes in both places.**** >>>> >>>> ** ** >>>> >>>> A common scenario for that error is having 2 different (jstl) standard >>>> taglib jars.**** >>>> >>>> >>>> **** >>>> >>>> --**** >>>> >>>> Joakim Erdfelt <[email protected]>**** >>>> >>>> webtide.com <http://www.webtide.com/>**** >>>> >>>> Developer advice, services and support >>>> from the Jetty & CometD experts**** >>>> >>>> eclipse.org/jetty - cometd.org**** >>>> >>>> >>>> >>>> **** >>>> >>>> On Thu, Nov 8, 2012 at 8:40 AM, Johnson, Wayne <[email protected]> >>>> wrote:**** >>>> >>>> I am migrating a webapp from Jetty6 (stop laughing, it's worked well >>>> for years) to Jetty8 and I'm getting the following error: >>>> >>>> org.apache.jasper.JasperException: >>>> file:D:/dev/HEAD/eadev/clients/java/cfgmgr/jsp/displayAttribute.jsp(7,62) >>>> PWC6188: The absolute uri: http://java.sun.com/jsp/jstl/core cannot be >>>> resolved in either web.xml or the jar files deployed with this application >>>> >>>> This compile use to work in Jetty 6 but now fails. I see this in quite >>>> a few places in a Google search, but most appear in reference to this error >>>> when loading the webapp, not when precompiling it. >>>> >>>> I tried changing the Ant task to follow joakime suggested task at >>>> http://stackoverflow.com/questions/11735628/precompile-jsps-into-classes-for-jetty8-using-antbut >>>> to no avail. >>>> >>>> I am using 8.1.7.v20120910, but I get the same error with >>>> 7.6.7.v20120910. >>>> >>>> The webapp is precompiled using an Ant task with the following target: >>>> <target name="jspc" depends="init, version_compile, mqservlets"> >>>> >>>> <path id="jasper2.classpath"> >>>> <fileset dir="${env.JETTY_HOME}"> >>>> <include name="lib/servlet-api-*.jar" /> >>>> <include name="lib/jsp/*.jar" /> >>>> </fileset> >>>> </path> >>>> >>>> <pathconvert property="jasper2.classpath" refid="jasper2.classpath" >>>> /> >>>> <echo message="jasper2.classpath=${jasper2.classpath}" /> >>>> >>>> <mkdir dir="${webcfgmgr}/jsp/servlets"/> >>>> <taskdef classname="org.apache.jasper.JspC" name="jasper2" >>>> classpathref="jasper2.classpath"/> >>>> >>>> <jasper2 >>>> package="" >>>> uriroot="${webcfgmgr}/jsp" >>>> validateXml="false" >>>> webXmlFragment="${webcfgmgr}/WEB-INF/generated_web.xml" >>>> outputDir="${webcfgmgr}/jsp/servlets"/> >>>> </target> >>>> >>>> The classpath output is: >>>> jspc: >>>> [echo] >>>> jasper2.classpath=D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\com.sun.el-2.2.0.v201108011116.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\javax.el-2.2.0.v201108011116.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\javax.servlet.jsp-2.2.0.v201112011158.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\javax.servlet.jsp.jstl-1.2.0.v201105211821.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\org.apache.jasper.glassfish-2.2.2.v201112011158.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\org.apache.taglibs.standard.glassfish-1.2.0.v201112081803.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\jsp\org.eclipse.jdt.core-3.7.1.jar;D:\dev\jetty-distribution-8.1.7.v20120910\lib\servlet-api-3.0.jar >>>> >>>> The source line this barfs on is: >>>> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> >>>> >>>> Anyone have any suggestions? Thanks for any help you can give me. >>>> _______________________________________________ >>>> jetty-users mailing list >>>> [email protected] >>>> https://dev.eclipse.org/mailman/listinfo/jetty-users**** >>>> >>>> ** ** >>>> >>>> _______________________________________________ >>>> jetty-users mailing list >>>> [email protected] >>>> https://dev.eclipse.org/mailman/listinfo/jetty-users >>>> >>>> >>> >> >> _______________________________________________ >> jetty-users mailing list >> [email protected] >> https://dev.eclipse.org/mailman/listinfo/jetty-users >> >> > > _______________________________________________ > jetty-users mailing list > [email protected] > https://dev.eclipse.org/mailman/listinfo/jetty-users > >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
