Actually it's a bug. After some digging around in the code I discovered a
bug in Jasper. Therefore I took this topic over to the tomcat-dev list.
Thanks for your help though.
Robert
-----Original Message-----
From: Gilles [mailto:[EMAIL PROTECTED]]
Sent: Tuesday, May 22, 2001 6:28 AM
To: Tomcat-User
Subject: Re: Packaged TAGLIB
Hi Robert,
Try the following:
<%@ taglib uri="/WEB-INF/lib/yourjar.jar" prefix="util"
Gilles
On Mon, 21 May 2001, Robert Petersen wrote:
>
> I am having a problem when I try to package up my tag libraries. They
seem
> to work when the are not packaged. When I try to access a page that uses
my
> custom tags I get an exception that states:
> org.apache.jasper.JasperException: File "/util" not found
> The full exception is at the end. The jsp file uses the following tag lib
> directive: <%@ taglib uri="/util" prefix="util" %>
>
> My .tld files (I'm using Tomcat 4, Jsp 1.2) are located in the META-INF of
> the jar file and I place that jar file in the WEB-INF/lib directory.
> Any help would be appreciated. At the end of the email is any info I
think
> is important.
>
> Thanks,
> Robert
>
> My jar file looks like this:
> 0 Mon May 21 14:10:54 PDT 2001 META-INF/
> 68 Mon May 21 14:10:54 PDT 2001 META-INF/MANIFEST.MF
> 0 Mon May 21 13:12:24 PDT 2001 com/
> 0 Mon May 21 13:12:24 PDT 2001 com/orangefood/
> 0 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/
> 0 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/db/
> 252 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/db/ResultSetDuring.class
> 246 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/db/ResultSetEnd.class
> 250 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/db/ResultSetStart.class
> 1707 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/db/ResultSetState.class
> 4530 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/db/SQL.class
> 0 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/
> 1602 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/BeanBodyTagSupport.class
> 1549 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/BeanTagSupport.class
> 1774 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/Case.class
> 2231 Mon May 21 13:12:24 PDT 2001
com/orangefood/taglib/util/ForEach.class
> 0 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/form/
> 450 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/form/FormException.class
> 295 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/form/FormHandler.class
> 4828 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/form/FormHandlerTag.class
> 1044 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/Get.class
> 4510 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/If.class
> 1589 Mon May 21 13:12:24 PDT 2001
> com/orangefood/taglib/util/LastUpdated.class
> 1124 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/Now.class
> 603 Mon May 21 13:12:24 PDT 2001
com/orangefood/taglib/util/Request.class
> 1503 Mon May 21 13:12:24 PDT 2001
com/orangefood/taglib/util/Switch.class
> 702 Mon May 21 13:12:24 PDT 2001 com/orangefood/taglib/util/Time.class
> 4315 Mon May 21 13:12:24 PDT 2001
com/orangefood/taglib/util/URLTag.class
> 1480 Mon May 21 14:08:46 PDT 2001 META-INF/db.tld
> 5212 Mon May 21 14:08:22 PDT 2001 META-INF/util.tld
>
> Part of my tld looks like this:
> <?xml version="1.0" encoding="ISO-8859-1" ?>
> <!DOCTYPE taglib PUBLIC
> "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
> "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
>
> <!-- a tag library descriptor -->
>
> <taglib>
> <!-- after this the default space is
> "http://java.sun.com/j2ee/dtds/jsptaglibrary_1_2.dtd"
> -->
>
> <tlib-version>1.0</tlib-version>
> <jsp-version>1.2</jsp-version>
> <short-name>util</short-name>
> <uri>/util</uri>
> <description>
> A utility tag library for orangefood.com
> </description>
>
> <tag>
> .
> .
> .
>
> Exception:
> org.apache.jasper.JasperException: File "/util" not found
> at
>
org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:213)
> at
>
org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:173)
> at
>
org.apache.jasper.compiler.JspParseEventListener.processTaglibDirective(JspP
> arseEventListener.java:1143)
> at
>
org.apache.jasper.compiler.JspParseEventListener.handleDirective(JspParseEve
> ntListener.java:754)
> at
>
org.apache.jasper.compiler.DelegatingListener.handleDirective(DelegatingList
> ener.java:121)
> at org.apache.jasper.compiler.Parser$Directive.accept(Parser.java:243)
> at org.apache.jasper.compiler.Parser.parse(Parser.java:1126)
> at org.apache.jasper.compiler.Parser.parse(Parser.java:1091)
> at org.apache.jasper.compiler.Parser.parse(Parser.java:1087)
> at
>
org.apache.jasper.compiler.ParserController.parse(ParserController.java:220)
> at org.apache.jasper.compiler.Compiler.compile(Compiler.java:207)
> at org.apache.jasper.servlet.JspServlet.loadJSP(JspServlet.java:523)
> at
>
org.apache.jasper.servlet.JspServlet$JspServletWrapper.loadIfNecessary(JspSe
> rvlet.java:175)
> at
>
org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.ja
> va:187)
> at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
> at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:453)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:254)
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:194)
> at
>
com.orangefood.java.servlet.AttributeSetter.doFilter(AttributeSetter.java:77
> )
> at
>
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
> FilterChain.java:214)
> at
>
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
> ain.java:194)
> at
>
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
> va:255)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
> va:225)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
> org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2252)
> at
>
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164
> )
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> at
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:446)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 64)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
> :163)
> at
>
org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:5
> 66)
> at
>
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
> at
>
org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:
> 875)
> at
>
org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:952)
> at java.lang.Thread.run(Thread.java:484)
>