So, you should have stuck it in then !

Yes, it is a hack, but it is my last JSP problem sorted (for a while anyway).


Jules

P.S.

I shall sort my mail by author from now on and always read your first :-)


Jan Bartel wrote:

> Jules Gosnell wrote:
>
> > I finally went to bed, then had to get up again when I figured it out !
>
> GEEZ! I don't know why I keep posting on this topic, clearly nobody
> bothers to read my email (grump grump grump). I said a couple of days ago:
>
>    I suppose it would be possible to do a nasty hack like prepend another
>    "njar:" onto the front of an njar url and see if we could trick the
>    njar protocol handler into unpacking then accessing the temp file
>    location it creates ....
>
> So yeah, it might work, but I still think its a *hack* and unpacking on
> deploy is simpler, centralized and foolproof.
>
> Go back to bed Jules :-)
>
> Jan
>
> >
> > Just for the record, you don't need the getFileForURL() at all.
> >
> > Here is what you do :
> >
> >   if (url.getProtocol().equals("njar"))
> >   {
> >    try
> >    {
> >      // force the resource we are after to be unpacked - tmp hack - thanks David
> > Jencks!
> >      URL dummy=new URL("njar:"+url.toString()+"^"+"/dummy.jar");
> >      String tmp=dummy.openConnection().getURL().toString();
> >      tmp=tmp.substring("jar:".length());
> >      tmp=tmp.substring(0, tmp.length()-"!/dummy.jar".length());
> >      _log.info("converting "+url+" -> "+tmp);
> >      url=new URL(tmp);
> >    }
> >    catch (Exception ignore)
> >    {
> >    }
> >   }
> >
> > I've only tried on Linux so far. I still have to get VMWare running.
> >
> > the output is e.g. ;
> >
> >
> > 01:28:31,676 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar^/org.mortbay.jetty.jar
> > -> file:/tmp/nested-19378.jar
> > 01:28:31,677 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-jdbc.rar/55.jboss-jdbc.rar^/ra-jdbc-libs.jar
> > -> file:/tmp/nested-19338.jar
> > 01:28:31,683 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jms-ra.rar/54.jms-ra.rar^/jms-ra.jar
> > -> file:/tmp/nested-19336.jar
> > 01:28:31,688 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-xa.rar/56.jboss-xa.rar^/ra-xa-libs.jar
> > -> file:/tmp/nested-19340.jar
> > 01:28:31,698 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear^/jbosstest-web-ejbs.jar
> > -> file:/tmp/nested-19382.jar
> > 01:28:31,702 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar^/org.mortbay.jetty.jmx.jar
> > -> file:/tmp/nested-19380.jar
> > 01:28:31,776 INFO  [JBossWebApplicationContext#/jbosstest-not] converting
> > 
>njar:file:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear^/cts.jar
> > -> file:/tmp/nested-19384.jar
> > 01:28:31,788 INFO  [JBossWebApplicationContext#/jbosstest-not] JSP classpath:
> > 
>/tmp/Jetty__8080___jbosstest-not/webapp/WEB-INF/classes:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/counter-plugin.jar/16.counter-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/scheduler-plugin.jar/36.scheduler-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/testsuite/output/lib/jbosstest-web.ear/71.jbosstest-web.ear:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/concurrent.jar/14.concurrent.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/p
> 
>teranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-html-adaptor.sar/50.jmx-html-adaptor.sar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss.jar/2.jboss.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jetty-plugin.sar/70.jetty-plugin.sar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/mail-plugin.jar/39.mail-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/conf:/tmp/nested-19378.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jul
> 
>es/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-j2ee.jar/31.jboss-j2ee.jar:/tmp/nested-19338.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/castor.jar/25.castor.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-common.jar/32.jboss-common.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/org.apache.jasper.jar/17.org.apache.jasper.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jpl-util.jar/5.jpl-util.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0
> 
>.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-xa.rar/56.jboss-xa.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/jbosstest-web.war:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jboss-jdbc.rar/55.jboss-jdbc.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/tyrex.jar/21.tyrex.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxtools.jar/30.jmxtools.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pte
> 
>ranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-rmi-adaptor.sar/43.jmx-rmi-adaptor.sar:/tmp/nested-19336.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jndi.jar/15.jndi.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/bcel.jar/18.bcel.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/xalan.jar/42.xalan.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-system.jar/40.jboss-system.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/
> 
>jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/mail.jar/12.mail.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jms-ra.rar/54.jms-ra.rar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jnet.jar/38.jnet.jar:/tmp/nested-19340.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-ejb-adaptor.jar/47.jmx-ejb-adaptor.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jbossmq.jar/19.jbossm
> 
>q.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jsr77.jar/34.jsr77.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/notjbosstest-web.war:/tmp/nested-19382.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jnpserver.jar/8.jnpserver.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jcert.jar/10.jcert.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jpl-pattern.jar/11.jpl-pattern.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/ou
> 
>tput/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-pool.jar/28.jboss-pool.jar:/tmp/nested-19380.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaas.jar/3.jaas.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxri.jar/4.jmxri.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jsse.jar/9.jsse.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/crimson.jar/23.crimson.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0
> 
>/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/hsqldb-plugin.jar/27.hsqldb-plugin.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jts.jar/22.jts.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-boot.jar/13.jboss-boot.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaxp.jar/24.jaxp.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/gnu-regexp.jar/41.gnu-regexp.jar:/mnt/pteranodon/home/jules/cvs
> 
>/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/root-web.war:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/jmx-ejb-connector-server.sar/49.jmx-ejb-connector-server.sar:/tmp/nested-19384.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/getopt.jar/7.getopt.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/javax.servlet.jar/6.javax.servlet.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/scheduler-plugin-example.jar/37.scheduler-plugin-example.jar:/m
> 
>nt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/hsqldb.jar/35.hsqldb.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/log4j.jar/33.log4j.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jbosssx.jar/26.jbosssx.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/deploy/ejb-management.jar/48.ejb-management.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/act
> 
>ivation.jar/29.activation.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/server/default/tmp/deploy/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-jca.jar/20.jboss-jca.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/crimson.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jmxri.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jaxp.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/log4j.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-common.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/lib/jboss-system.jar:/mnt/pteranodon/home/jules/cvs/JBoss/3.0/build/output/jboss-3.0.0beta2/bin/run.jar:/usr/java/jdk1.3.1_02/lib/tools.jar
> >
> > 01
> >
> >
> > This will do for the moment - but I wouldn't call it perspicuous or robust !
> >
> > Thanks for all your patience David, guys,
> >
> > Goodnight,
> >
> >
> > Jules
> >
> >
> > David Jencks wrote:
> >
> >
> >>njar is not magic, so if it allows jboss access to a nested jar, it must
> >>have unpacked everything up to but perhaps not including that final jar.
> >>To access it, maybe you need to add another njar:...(url)^/ to your url, or
> >>maybe my accessor sucks.  I'm not going to have time to remove it before
> >>jbossone, so you still might be able to profitably get something working
> >>with it.
> >>
> >>david jencks
> >>
> >>On 2002.03.20 17:15:08 -0500 Jules Gosnell wrote:
> >>
> >>>David,
> >>>
> >>>As Jan said, njar only unpacks jars nested deeper than one level,
> >>>otherwise it will
> >>>just delegate to a jar: protocol url.
> >>>
> >>>I tried this fix, and unfortunately proved that this is the case. None of
> >>>the jars
> >>>that I was interested in end up being unpacked, because they are all one
> >>>level
> >>>down. I could hack njar further, to unpack everything, but then it would
> >>>not be
> >>>njar anymore. So I shall wait for Marc and you to resolve the situation.
> >>>
> >>>Please keep me posted,
> >>>
> >>>
> >>>Jules
> >>>
> >>>
> >>>David Jencks wrote:
> >>>
> >>>
> >>>>On 2002.03.19 21:17:09 -0500 Jules Gosnell wrote:
> >>>>
> >>>>>Aha !
> >>>>>
> >>>>>
> >>>>>So I guess I have a couple of options :
> >>>>>
> >>>>>1. hope that the njar folks will take pity on me, unpack the first
> >>>>>
> >>>level
> >>>
> >>>>>and let
> >>>>>me  dereference it....
> >>>>>
> >>>>I didn't test it, and I'm not 100%sure of what you want/need, but is
> >>>>
> >>>this
> >>>
> >>>>close?  Do you want njar to unpack down to the level of jsp files?
> >>>>
> >>>Right
> >>>
> >>>>now it stops with the final jar.
> >>>>
> >>>>You might need to append ^/ to your urls, or change the code not to
> >>>>
> >>>strip
> >>>
> >>>>same.
> >>>>
> >>>>change Handler so map is static:
> >>>>
> >>>>   protected static Map savedJars = new HashMap();
> >>>>
> >>>>   public static File getFileForURL(URL url)
> >>>>   {
> >>>>      String file = url.getFile();
> >>>>      String embeddedURL = file;
> >>>>
> >>>>      int pos = file.lastIndexOf(NJAR_SEPARATOR);
> >>>>      if (pos >= 0)
> >>>>      {
> >>>>         embeddedURL = file.substring(0, pos);
> >>>>      }
> >>>>
> >>>>      if (embeddedURL.startsWith(PROTOCOL))
> >>>>      {
> >>>>         //System.out.println("Opening next  nested jar: " +
> >>>>
> >>>embeddedURL);
> >>>
> >>>>         return (File) savedJars.get(embeddedURL);
> >>>>      }
> >>>>      return null;
> >>>>   }
> >>>>
> >>>>david jencks
> >>>>
> >>>>
> >>>>>2. take my own local copy of any njars I need in Jasper's
> >>>>>
> >>>classpath.....
> >>>
> >>>>>
> >>>>>This will be a problem for Tomcat as well.....
> >>>>>
> >>>>>I'm going to sleep on it.....
> >>>>>
> >>>>>It would be a shame to unpack everything when it can be run packed,
> >>>>>
> >>>but a
> >>>
> >>>>>shag for
> >>>>>AbstractWebContainer to have to cache it's own local copies of every
> >>>>>
> >>>njar
> >>>
> >>>>>hooked
> >>>>>into it's classloader hierarchy.....
> >>>>>
> >>>>>
> >>>>>Catch you tomorrow,
> >>>>>
> >>>>>
> >>>>>Jules
> >>>>>
> >>>>>
> >>>>>Jan Bartel wrote:
> >>>>>
> >>>>>
> >>>>>>Actually, the njar protocol handler doesn't unpack the contents to
> >>>>>>
> >>>a
> >>>
> >>>>>>temp location for urls like:
> >>>>>>
> >>>>>>   njar:file:.....^/blah.jar
> >>>>>>
> >>>>>>Only for urls like:
> >>>>>>
> >>>>>>   njar:njar:file:...^/xxx.jar^/yyy.jar
> >>>>>>
> >>>>>>As all of the class loader urls for the JSP compile path  are like
> >>>>>>the former rather than the latter, then njar internals don't
> >>>>>>
> >>>unpack.
> >>>
> >>>>>>I suppose it would be possible to do a nasty hack like prepend
> >>>>>>
> >>>another
> >>>
> >>>>>>"njar:" onto the front of an njar url and see if we could trick the
> >>>>>>njar protocol handler into unpacking then accessing the temp file
> >>>>>>location it creates ....
> >>>>>>
> >>>>>>Jan
> >>>>>>
> >>>>>>Jules Gosnell wrote:
> >>>>>>
> >>>>>>
> >>>>>>>No,
> >>>>>>>
> >>>>>>>i know about the njar problem - that was the next on the list.
> >>>>>>>
> >>>>>>>I'm not sure whether a public accessor has been added to allow
> >>>>>>>
> >>>you to
> >>>
> >>>>>convert
> >>>>>
> >>>>>>>njar->file (all the nested jars are unpacked into tmp and an
> >>>>>>>
> >>>index
> >>>
> >>>>>>>maintained), but there were plans afoot.
> >>>>>>>
> >>>>>>>Jules
> >>>>>>>
> >>>>>>>
> >>>>>>>Jan Bartel wrote:
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>>>Jules,
> >>>>>>>>
> >>>>>>>>Furthermore, if you are intending using the URLs returned by the
> >>>>>>>>AbstractWebContainer.getClassLoaderURLs(), then you are going to
> >>>>>>>>run into the njar problem (ie jars within sars etc are not
> >>>>>>>>
> >>>unpacked,
> >>>
> >>>>>>>>so there is no URL to a disk location), which is how we got into
> >>>>>>>>this whole issue in the first place. Or have I misunderstood
> >>>>>>>>
> >>>where
> >>>
> >>>>>>>>your question comes from ?
> >>>>>>>>
> >>>>>>>>Jan
> >>>>>>>>
> >>>>>>>>Jan Bartel wrote:
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>Jules,
> >>>>>>>>>
> >>>>>>>>>I can see the javax.servlet.jar on the JSP classpath returned
> >>>>>>>>>
> >>>from
> >>>
> >>>>>>>>>AbstractWebContainer.getClassLoaderURLs - what jboss
> >>>>>>>>>version are you using?  Caveat: I haven't refreshed my tree in
> >>>>>>>>>
> >>>the
> >>>
> >>>>>>>>>last 3 days or so, so maybe there has been a recent change ...
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>Jan
> >>>>>>>>>
> >>>>>>>>>Jules Gosnell wrote:
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>>I am trying to crush the two JSP compile errors in this
> >>>>>>>>>>
> >>>testsuite.
> >>>
> >>>>>>>>>>The classpath for Jasper is being built by walking up the
> >>>>>>>>>>
> >>>>>classloader
> >>>>>
> >>>>>>>>>>hierarchy from the WebApp to the top, passing each classloader
> >>>>>>>>>>
> >>>to
> >>>
> >>>>>>>>>>AbstractWebContainer.getClassLoaderURLs(ClassLoader).
> >>>>>>>>>>
> >>>>>>>>>>My problem is that the javax.servlet.jar does not seem to have
> >>>>>>>>>>
> >>>been
> >>>
> >>>>>>>>>>loaded by an immediate parent of my webapp's classloader.
> >>>>>>>>>>
> >>>>>>>>>>You will want a fixed width font to view this.
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>sun.misc.Launcher$ExtClassLoader@7d8483
> >>>>>>>>>>               |
> >>>>>>>>>>               |
> >>>>>>>>>>sun.misc.Launcher$AppClassLoader@7fdcde
> >>>>>>>>>>               |
> >>>>>>>>>>               |
> >>>>>>>>>>java.net.URLClassLoader@6930e2
> >>>>>>>>>>               |
> >>>>>>>>>>
> >>>>>>>>>>-------------------------------------------------------------------.....
> >>>>>>>>>>
> >>>>>>>>>>|
> >>>>>>>>>>
> >>>  |
> >>>
> >>>>>>>>>>org.jboss.system.UnifiedClassLoader@76949770
> >>>>>>>>>>org.jboss.system.UnifiedClassLoader@806b8bd7
> >>>>>>>>>>
> >>>(JAVAX.SERVLET.JAR)
> >>>
> >>>>>>>>>>               |
> >>>>>>>>>>               |
> >>>>>>>>>>java.net.FactoryURLClassLoader@5ef658
> >>>>>>>>>>               |
> >>>>>>>>>>               |
> >>>>>>>>>>org.mortbay.http.ContextLoader (MY WEBAPP)
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>Consequently the servlet jar does not get onto the classpath
> >>>>>>>>>>
> >>>and
> >>>
> >>>>>JSP
> >>>>>
> >>>>>>>>>>compilation fails.....
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>So what should happen here ?
> >>>>>>>>>>
> >>>>>>>>>>Should a UnifiedClassLoader return all it's siblings URLs as
> >>>>>>>>>>
> >>>well -
> >>>
> >>>>>>>>>>they are all loaded into a flat scope and are available to each
> >>>>>>>>>>
> >>>>>other,
> >>>>>
> >>>>>>>>>>are they not?
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>Thanks for your time,
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>Jules
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>
> >>>>>>>_________________________________________________________
> >>>>>>>Do You Yahoo!?
> >>>>>>>Get your free @yahoo.com address at http://mail.yahoo.com
> >>>>>>>
> >>>>>>>
> >>>>>>>
> >>>>>>_______________________________________________
> >>>>>>Jboss-development mailing list
> >>>>>>[EMAIL PROTECTED]
> >>>>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>>>>>
> >>>>>
> >>>>>_________________________________________________________
> >>>>>Do You Yahoo!?
> >>>>>Get your free @yahoo.com address at http://mail.yahoo.com
> >>>>>
> >>>>>
> >>>>>_______________________________________________
> >>>>>Jboss-development mailing list
> >>>>>[EMAIL PROTECTED]
> >>>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>>>>
> >>>>>
> >>>>>
> >>>>_______________________________________________
> >>>>Jboss-development mailing list
> >>>>[EMAIL PROTECTED]
> >>>>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>>>
> >>>
> >>>_________________________________________________________
> >>>Do You Yahoo!?
> >>>Get your free @yahoo.com address at http://mail.yahoo.com
> >>>
> >>>
> >>>_______________________________________________
> >>>Jboss-development mailing list
> >>>[EMAIL PROTECTED]
> >>>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>>
> >>>
> >>>
> >>_______________________________________________
> >>Jboss-development mailing list
> >>[EMAIL PROTECTED]
> >>https://lists.sourceforge.net/lists/listinfo/jboss-development
> >>
> >
> >
> > _________________________________________________________
> > Do You Yahoo!?
> > Get your free @yahoo.com address at http://mail.yahoo.com
> >
> >
> > _______________________________________________
> > Jboss-development mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/jboss-development
> >
>
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to