Return-Path: Mailing-List: contact tomcat-user-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list tomcat-user@jakarta.apache.org Received: (qmail 45588 invoked from network); 5 Aug 2003 18:55:34 -0000 Received: from unknown (HELO pro18.msshost.com) (216.12.202.106) by daedalus.apache.org with SMTP; 5 Aug 2003 18:55:34 -0000 Received: from [209.192.219.80] (helo=gonzo) by pro18.msshost.com with asmtp (Exim 4.20) id 19k6y4-0000Oe-Cl for tomcat-user@jakarta.apache.org; Tue, 05 Aug 2003 13:55:32 -0500 From: "Steph Richardson" To: "Tomcat Users List" Subject: RE: Jasper, JSPC, Ant and Precompiling JSP's Date: Tue, 5 Aug 2003 14:55:44 -0400 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2911.0) Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 In-Reply-To: <3F2ECA73.4040301@latte.harvard.edu> X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - pro18.msshost.com X-AntiAbuse: Original Domain - jakarta.apache.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - kvasar.com X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Mark, The jspc task that I used from the standard "Optional Tasks" that come with ant, does support a webapp parameter, and this works fine to compile the whole webapp without any regexp voodoo ( I didn't use it because it won't allow you to exclude any files ). I did see once a conversation on the ant-dev list that complained about how brittle the jspc task has been to maintain. So jasper ( with 4.1.28 ) comes with it's own built in task to completely compile a webapp. As described here : http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jasper-howto.html#Web%20Application%20Compilation If you ignore the part about the web.xml fragment, and make sure your output dir is the same as your Tomcat workdir, then this works too ( I think - I did so many experiments my mind is now cloudy ). Steph > -----Original Message----- > From: Mark R. Diggory [mailto:mdiggory@latte.harvard.edu] > Sent: Monday, August 04, 2003 5:05 PM > To: Tomcat Users List > Subject: Re: Jasper, JSPC, Ant and Precompiling JSP's > > > Bingo! Thats pretty tight. I hadn't thought of using regexp, but I'll > give this a try, it seems pretty logical. I didn't realize someone had > contributed a forEach task. > > I'd still like to hear about if theres any work ongoing in relation to > JspC and precompilation of entire webapplications in Tomcat? > > thanks again, > Mark > > > Steph Richardson wrote: > > > Mark, > > > > I have a working solution for pre-compiling jsp, that I am using successfully with all our tomcat installations. The > target looks > > like : > > > > > > > > > > > srcdir="${webapp.rootdir}" > > destdir="${webapp.workdir}" > > failonerror="false" > > classpathref="jspc_parse.classpath" > > package="org.apache.jsp" > > compiler="jasper41"> > > > > > > > > > > > > > > > match="^package org.apache.jsp.*;" > > replace="package org.apache.jsp;" > > > > > > > > > > > > > > > > > > > > > I then use from antcontrib to iterate over the directories and compile them individually. > > Tomcat seems to accept all the resulting class files at runtime with no problems. > > > > Regards, > > > > Steph > > > > > > > >>-----Original Message----- > >>From: Steph Richardson [mailto:steph@kvasar.com] > >>Sent: Friday, August 01, 2003 7:06 PM > >>To: Tomcat Users List > >>Subject: RE: Jasper, JSPC, Ant and Precompiling JSP's > >> > >> > >> > >>That is EXACTLY what I am trying to do today. I've tooled around in the ant code, and it seems this is more of a jasper > issue than > >>an ant one, because ant passes a long list of files to jasper, with the unwanted pathnames that end up as part of your > >>package name. > >> > >>I'm pretty sure if you used something like to iterate through the same fileset that is being created in the > >>jspc task, and > >>called jspc for each directory individually, and used the package="org.apache.jsp" attribute, then this would work - > because then > >>jasper wouldn't know about you're own subdirectory. But this seems ugly so I haven't actually done it yet. > >> > >>You can use the webapp element inside jspc, but then jasper doesn't know about your and so tries to compile some > >>fragment.jsp type include files, that are not really full jsp files, and so it crashes on those ( this is my current > >>problem ). But > >>if all your included files are called .inc rather than .jsp then this may work. > >> >> destdir="${webapp.workdir}" > >> failonerror="false" > >> classpathref="jspPreCompile.classpath" > >> package="org.apache.jsp" > >> compiler="jasper41"> > >> > >> > >> > >> > >> > >> > >>So now I'm trying to make an ant step or task to replace the first line of every generated _jsp.java file with the > correct package > >>name, between generating them and compiling them. > >>Plz met me know if you have something better. > >> > >> > >>Regards, > >> > >>Steph > >> > >> > >>PS - if you're from the same HMDC i know, I suspect the site you are trying to pre-compile, is one I wrote last summer. > >> > >> > >> > >> > >>>-----Original Message----- > >>>From: Mark R. Diggory [mailto:mdiggory@latte.harvard.edu] > >>>Sent: Friday, August 01, 2003 5:19 PM > >>>To: Tomcat Users List > >>>Subject: Jasper, JSPC, Ant and Precompiling JSP's > >>> > >>> > >>>Hello, > >>> > >>>I've done my best to review the archives to resolve my problem, but I've > >>>not found a solution there so I'm posting it. > >>> > >>>I'm stuck back on Tomcat 4.1.24 (LE) and I'm encountering some issues > >>>with JSP Precompilation using Ant and JSPC. First let me outline my problem. > >>> > >>>Most messages I've read to date focus on using JSP recompiling to turn > >>>the JSP into Servlets stored in a WAR file and require generating a > >>>fragment web.xml file and including it into your web.xml, I AM NOT > >>>trying to do this. I want my JSP's to get precompiled into the work > >>>directory of Tomcat and used from there, the exact same way that Tomcat > >>>does it. This way afterward, if the jsp is modified, tomcat can still > >>>recompile it. > >>> > >>> > >>>I have the following jspc and javac tasks coded in my build.xml: > >>> > >>> > >>> > >>> >>> destdir="/var/tomcat4/work/Standalone/localhost/Foo" > >>> failonerror="false" > >>> compiler="jasper41"> > >>> > >>> > >>> > >>> > >>> > >>> > >>> >>> optimize="off" > >>> debug="on" failonerror="false" > >>> srcdir="/var/tomcat4/work/Standalone/localhost/Foo" > >>> excludes="**/*.smap"> > >>> > >>> > >>> > >>> > >>> > >>> > >>>Both tasks get completed successfully. I observe problems in the package > >>>names of the JSPC generated java files where the following is the case. > >>> > >>>/var/tomcat/webapps/Foo/Bar/Bam.jsp results in the package name > >>> > >>>package Bar; > >>>... > >>> > >>>which becomes a problem when I try to access this JSP included into > >>>another, I get the following error > >>> > >>>java.lang.NoClassDefFoundError: org/apache/jsp/Bam_jsp (wrong name: > >>>Bar/Bam_jsp) > >>> at java.lang.ClassLoader.defineClass0(Native Method) > >>> at java.lang.ClassLoader.defineClass(ClassLoader.java:502) > >>> at java.lang.ClassLoader.defineClass(ClassLoader.java:431) > >>> at org.apache.jasper.servlet.JasperLoader.loadClass(Unknown Source) > >>> at org.apache.jasper.servlet.JasperLoader.loadClass(Unknown Source) > >>> at org.apache.jasper.JspCompilationContext.load(Unknown Source) > >>> at org.apache.jasper.servlet.JspServletWrapper.getServlet(Unknown Source) > >>> at org.apache.jasper.compiler.Compiler.isOutDated(Unknown Source) > >>> at org.apache.jasper.compiler.Compiler.isOutDated(Unknown Source) > >>> ... > >>> > >>> > >>>I read somewhere that work had been done on my version (4.1.24) to > >>>eliminate a naming conflict problem. I assume this is why there are now > >>>package names on my _jsp.java files. I find that when I let > >>>Tomcat/Jasper compile all my jsp's the java files *all* have the package > >>>name "org.apache.jsp" no matter what their directory. I assume that my > >>>compilation is conflicting with Tomcats because of the package naming > >>>differences. > >>> > >>>So, I've tried adding the following attribute package="org.apache.jsp" > >>>to the jspc task, but this results in even more problems because all the > >>>package names now look like: > >>> > >>>package org.apache.jsp.Bar; > >>> > >>>and when they are compiled, they end up in a separate directory > >>> > >>>/var/tomcat4/work/Foo/org/apache/jsp/Bar/Bam_jsp.java > >>> > >>>Any ideas or solutions out there would be really helpful for me. I just > >>>want to have Tomcat start out using my precompiled jsp's instead of > >>>initially compiling them itself. > >>> > >>>thanks > >>>Mark Diggory > >>>HMDC > >>> > >>> > >>>--------------------------------------------------------------------- > >>>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org > >>>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org > >>> > >>> > >>> > >> > >> > >>--------------------------------------------------------------------- > >>To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org > >>For additional commands, e-mail: tomcat-user-help@jakarta.apache.org > >> > >> > >> > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org > > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org > > >