From mdiggory@latte.harvard.edu Wed Aug 6 01:59:01 2003 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 87726 invoked from network); 6 Aug 2003 01:59:01 -0000 Received: from smtp02.mrf.mail.rcn.net (207.172.4.61) by daedalus.apache.org with SMTP; 6 Aug 2003 01:59:01 -0000 Received: from 207-172-79-45.c3-0.smr-ubr1.sbo-smr.ma.cable.rcn.com ([207.172.79.45] helo=latte.harvard.edu) by smtp02.mrf.mail.rcn.net with esmtp (Exim 3.35 #4) id 19kDa2-0001O9-00 for tomcat-user@jakarta.apache.org; Tue, 05 Aug 2003 21:59:10 -0400 Message-ID: <3F306194.9020306@latte.harvard.edu> Date: Tue, 05 Aug 2003 22:01:56 -0400 From: "Mark R. Diggory" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; rv:1.5a) Gecko/20030718 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Tomcat Users List Subject: Re: Jasper, JSPC, Ant and Precompiling JSP's References: In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N Ah, o.k. I had misunderstood what that attribute was for in the Ant Manual. I will try it and verify if the packaging comes out right. If I understand correctly, I will still need to walk the directories with the forEach task to get them compiled to classes, is this correct? thanks again for the help, -Mark Steph Richardson wrote: > 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 >> >> >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org >