You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Aaron Loucks <lo...@cofront.net> on 2005/11/26 06:44:52 UTC

tld files inside jars are not auto discovered

I can't get TLD auto discovery to work for any custom taglibs i write 
when I package them as jars. It works fine for the standard taglibs 
(core, fmt, etc..). The tld file is packaged inside the jar as 
'/meta-inf/breadcrumbs_1_0.tld', and breadcrumbs-1.0.jar is located in 
/WEB-INF/lib. If i put a copy of the tld in the WEB-INF directory and 
add a <taglib/> entry for it in web.xml, I'm able to use the tags. I 
don't understand why Tomcat (5.0.28) is auto detecting the TLD files 
inside the standard taglibs (standard.jar), but it won't autodetect them 
in jar files i produce. Any help would be greatly appreciated.

-Aaron

test.jsp:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1" %>
  
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="bc" 
uri="http://projects.cofront.net/tablibs/breadcrumbs" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Breadcrumb Test</title>
</head>
<body>
    <bc:breadcrumbs separator=" &#187; " style="color:red;">
        <bc:breadcrumb href="page1.htm">page1</bc:breadcrumb>
        <bc:breadcrumb href="page2.htm">page2</bc:breadcrumb>
        <bc:breadcrumb href="page3.htm">page3</bc:breadcrumb>
    </bc:breadcrumbs>

</body>
</html>

Produces the following error:

org.apache.jasper.JasperException: The absolute uri: 
http://projects.cofront.net/tablibs/breadcrumbs         cannot be 
resolved in either web.xml or the jar files deployed with this application
    
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
    
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
    
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
    
org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
    
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
    org.apache.jasper.compiler.Parser.parse(Parser.java:126)
    
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
    
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
    
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
    
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

*note* _The full stack trace of the root cause is available in the 
Apache Tomcat/5.0.28 logs.



_breadcrumbs_1_0.tld:


<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
    version="2.0">
   
  <description>Breadcrumbs library</description>
  <display-name>Breadcrumbs</display-name>
  <tlib-version>1.1</tlib-version>
  <short-name>bc</short-name>
  <uri>http://projects.cofront.net/tablibs/breadcrumbs</uri>
  <tag>
    <description>Creates Breadcrumbs.</description>
    <name>breadcrumbs</name>
    <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbsTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <description>Separator string.</description>
        <name>separator</name>
        <required>yes</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <description>CSS style to be applied to all breadcrumb 
links.</description>
        <name>style</name>
        <required>no</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
    <attribute>
        <description>CSS style class to be applied to all breadcrumb 
links.</description>
        <name>styleClass</name>
        <required>no</required>
        <rtexprvalue>true</rtexprvalue>
    </attribute>
  </tag>
  <tag>
    <description>A Breadcrumb.</description>
    <name>breadcrumb</name>
    <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbTag</tag-class>
    <body-content>JSP</body-content>
    <attribute>
        <description>URL</description>
        <name>href</name>
        <required>true</required>
        <rtexprvalue>false</rtexprvalue>
    </attribute>
  </tag>
</taglib>


web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">
 
    <display-name>ROOT</display-name>
 
    <servlet>
        <servlet-name>action</servlet-name>
        
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
            <param-name>config</param-name>
            <param-value>/WEB-INF/config/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
   
    @maven.tomcat.generated@
   
    <servlet-mapping>
        <servlet-name>action</servlet-name>
        <url-pattern>*.do</url-pattern>
    </servlet-mapping>
 
    <jsp-config>
    <!--
        <taglib>
            
<taglib-uri>http://projects.cofront.net/taglibs/breadcrumbs</taglib-uri>
            <taglib-location>/WEB-INF/breadcrumbs_1_0.tld</taglib-location>
        </taglib>
    -->
    </jsp-config>
   
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
        <welcome-file>index.htm</welcome-file>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>   

</web-app>


Re: tld files inside jars are not auto discovered

Posted by Bill Barker <wb...@wilshire.com>.
What can I say.  I just tried copying your TLD, and created two useless 
classes to implement the Tags, and copied your JSP to webapps/ROOT.  It all 
worked fine.  You can try checking that the .tld file ends in a lower-case 
".tld", but I don't know what else to suggest.  For what it's worth, here a 
dump of my working jar:

$ jar -tf breadcrumb.jar
META-INF/
META-INF/MANIFEST.MF
META-INF/_breadcrumbs_1_0.tld
BreadCrumbsTag.java
net/
net/cofront/
net/cofront/taglibs/
net/cofront/taglibs/breadcrumbs/
net/cofront/taglibs/breadcrumbs/BreadCrumbsTag.class
net/cofront/taglibs/breadcrumbs/BreadCrumbTag.class
BreadCrumbTag.java

"Aaron Loucks" <lo...@cofront.net> wrote in message 
news:4389FF57.8010704@cofront.net...
>I double checked the jar file and the META-INF is in uppercase. Still no 
>luck =/
>
> Bill Barker wrote:
>
>>You need to install your tld in /META-INF/.  Paths in jar files are 
>>case-sensitive.
>>
>>"Aaron Loucks" <lo...@cofront.net> wrote in message 
>>news:4387F654.4090200@cofront.net...
>>
>>>I can't get TLD auto discovery to work for any custom taglibs i write
>>>when I package them as jars. It works fine for the standard taglibs
>>>(core, fmt, etc..). The tld file is packaged inside the jar as
>>>'/meta-inf/breadcrumbs_1_0.tld', and breadcrumbs-1.0.jar is located in
>>>/WEB-INF/lib. If i put a copy of the tld in the WEB-INF directory and
>>>add a <taglib/> entry for it in web.xml, I'm able to use the tags. I
>>>don't understand why Tomcat (5.0.28) is auto detecting the TLD files
>>>inside the standard taglibs (standard.jar), but it won't autodetect them
>>>in jar files i produce. Any help would be greatly appreciated.
>>>
>>>-Aaron
>>>
>>>test.jsp:
>>>
>>><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>>>   pageEncoding="ISO-8859-1" %>
>>>
>>><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
>>><%@ taglib prefix="bc"
>>>uri="http://projects.cofront.net/tablibs/breadcrumbs" %>
>>>
>>><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>>><html>
>>><head>
>>><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>>><title>Breadcrumb Test</title>
>>></head>
>>><body>
>>>   <bc:breadcrumbs separator=" &#187; " style="color:red;">
>>>       <bc:breadcrumb href="page1.htm">page1</bc:breadcrumb>
>>>       <bc:breadcrumb href="page2.htm">page2</bc:breadcrumb>
>>>       <bc:breadcrumb href="page3.htm">page3</bc:breadcrumb>
>>>   </bc:breadcrumbs>
>>>
>>></body>
>>></html>
>>>
>>>Produces the following error:
>>>
>>>org.apache.jasper.JasperException: The absolute uri:
>>>http://projects.cofront.net/tablibs/breadcrumbs         cannot be
>>>resolved in either web.xml or the jar files deployed with this 
>>>application
>>>
>>>org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
>>>
>>>org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
>>>
>>>org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
>>>
>>>org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
>>>
>>>org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
>>> 
>>> org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
>>>   org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
>>>   org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
>>>   org.apache.jasper.compiler.Parser.parse(Parser.java:126)
>>>
>>>org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
>>>
>>>org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
>>>   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
>>>
>>>org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
>>>
>>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
>>>
>>>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
>>>   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
>>>   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>>*note* _The full stack trace of the root cause is available in the
>>>Apache Tomcat/5.0.28 logs.
>>>
>>>
>>>
>>>_breadcrumbs_1_0.tld:
>>>
>>>
>>><?xml version="1.0" encoding="UTF-8" ?>
>>><taglib xmlns="http://java.sun.com/xml/ns/j2ee"
>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
>>>   version="2.0">
>>>
>>> <description>Breadcrumbs library</description>
>>> <display-name>Breadcrumbs</display-name>
>>> <tlib-version>1.1</tlib-version>
>>> <short-name>bc</short-name>
>>> <uri>http://projects.cofront.net/tablibs/breadcrumbs</uri>
>>> <tag>
>>>   <description>Creates Breadcrumbs.</description>
>>>   <name>breadcrumbs</name>
>>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbsTag</tag-class>
>>>   <body-content>JSP</body-content>
>>>   <attribute>
>>>       <description>Separator string.</description>
>>>       <name>separator</name>
>>>       <required>yes</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>>   <attribute>
>>>       <description>CSS style to be applied to all breadcrumb
>>>links.</description>
>>>       <name>style</name>
>>>       <required>no</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>>   <attribute>
>>>       <description>CSS style class to be applied to all breadcrumb
>>>links.</description>
>>>       <name>styleClass</name>
>>>       <required>no</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>> </tag>
>>> <tag>
>>>   <description>A Breadcrumb.</description>
>>>   <name>breadcrumb</name>
>>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbTag</tag-class>
>>>   <body-content>JSP</body-content>
>>>   <attribute>
>>>       <description>URL</description>
>>>       <name>href</name>
>>>       <required>true</required>
>>>       <rtexprvalue>false</rtexprvalue>
>>>   </attribute>
>>> </tag>
>>></taglib>
>>>
>>>
>>>web.xml:
>>>
>>><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>>> version="2.4">
>>>
>>>   <display-name>ROOT</display-name>
>>>
>>>   <servlet>
>>>       <servlet-name>action</servlet-name>
>>>
>>><servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>>>       <init-param>
>>>           <param-name>config</param-name>
>>>           <param-value>/WEB-INF/config/struts-config.xml</param-value>
>>>       </init-param>
>>>       <load-on-startup>1</load-on-startup>
>>>   </servlet>
>>>
>>>   @maven.tomcat.generated@
>>>
>>>   <servlet-mapping>
>>>       <servlet-name>action</servlet-name>
>>>       <url-pattern>*.do</url-pattern>
>>>   </servlet-mapping>
>>>
>>>   <jsp-config>
>>>   <!--
>>>       <taglib>
>>>
>>><taglib-uri>http://projects.cofront.net/taglibs/breadcrumbs</taglib-uri>
>>> 
>>> <taglib-location>/WEB-INF/breadcrumbs_1_0.tld</taglib-location>
>>>       </taglib>
>>>   -->
>>>   </jsp-config>
>>>
>>>   <welcome-file-list>
>>>       <welcome-file>index.html</welcome-file>
>>>       <welcome-file>index.htm</welcome-file>
>>>       <welcome-file>index.jsp</welcome-file>
>>>   </welcome-file-list>
>>>
>>></web-app>
>>>
>>>
>>>
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>For additional commands, e-mail: users-help@tomcat.apache.org
>>
>> 




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: tld files inside jars are not auto discovered

Posted by Martin Gainty <mg...@hotmail.com>.
Aaron
are you able to access http://projects.cofront.net/tablibs/breadcrumbs ?
I tried just a minute ago and couldnt access this url
M-
----- Original Message ----- 
From: "Aaron Loucks" <lo...@cofront.net>
To: "Tomcat Users List" <us...@tomcat.apache.org>
Sent: Sunday, November 27, 2005 1:47 PM
Subject: Re: tld files inside jars are not auto discovered


>I double checked the jar file and the META-INF is in uppercase. Still no 
> luck =/
> 
> Bill Barker wrote:
> 
>>You need to install your tld in /META-INF/.  Paths in jar files are 
>>case-sensitive.
>>
>>"Aaron Loucks" <lo...@cofront.net> wrote in message 
>>news:4387F654.4090200@cofront.net...
>>  
>>
>>>I can't get TLD auto discovery to work for any custom taglibs i write
>>>when I package them as jars. It works fine for the standard taglibs
>>>(core, fmt, etc..). The tld file is packaged inside the jar as
>>>'/meta-inf/breadcrumbs_1_0.tld', and breadcrumbs-1.0.jar is located in
>>>/WEB-INF/lib. If i put a copy of the tld in the WEB-INF directory and
>>>add a <taglib/> entry for it in web.xml, I'm able to use the tags. I
>>>don't understand why Tomcat (5.0.28) is auto detecting the TLD files
>>>inside the standard taglibs (standard.jar), but it won't autodetect them
>>>in jar files i produce. Any help would be greatly appreciated.
>>>
>>>-Aaron
>>>
>>>test.jsp:
>>>
>>><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>>>   pageEncoding="ISO-8859-1" %>
>>>
>>><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
>>><%@ taglib prefix="bc"
>>>uri="http://projects.cofront.net/tablibs/breadcrumbs" %>
>>>
>>><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>>><html>
>>><head>
>>><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>>><title>Breadcrumb Test</title>
>>></head>
>>><body>
>>>   <bc:breadcrumbs separator=" &#187; " style="color:red;">
>>>       <bc:breadcrumb href="page1.htm">page1</bc:breadcrumb>
>>>       <bc:breadcrumb href="page2.htm">page2</bc:breadcrumb>
>>>       <bc:breadcrumb href="page3.htm">page3</bc:breadcrumb>
>>>   </bc:breadcrumbs>
>>>
>>></body>
>>></html>
>>>
>>>Produces the following error:
>>>
>>>org.apache.jasper.JasperException: The absolute uri:
>>>http://projects.cofront.net/tablibs/breadcrumbs         cannot be
>>>resolved in either web.xml or the jar files deployed with this application
>>>
>>>org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
>>>
>>>org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
>>>
>>>org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
>>>
>>>org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
>>>
>>>org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
>>>   org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
>>>   org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
>>>   org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
>>>   org.apache.jasper.compiler.Parser.parse(Parser.java:126)
>>>
>>>org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
>>>
>>>org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
>>>   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
>>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
>>>
>>>org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
>>>
>>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
>>>
>>>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
>>>   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
>>>   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>>
>>>*note* _The full stack trace of the root cause is available in the
>>>Apache Tomcat/5.0.28 logs.
>>>
>>>
>>>
>>>_breadcrumbs_1_0.tld:
>>>
>>>
>>><?xml version="1.0" encoding="UTF-8" ?>
>>><taglib xmlns="http://java.sun.com/xml/ns/j2ee"
>>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
>>>   version="2.0">
>>>
>>> <description>Breadcrumbs library</description>
>>> <display-name>Breadcrumbs</display-name>
>>> <tlib-version>1.1</tlib-version>
>>> <short-name>bc</short-name>
>>> <uri>http://projects.cofront.net/tablibs/breadcrumbs</uri>
>>> <tag>
>>>   <description>Creates Breadcrumbs.</description>
>>>   <name>breadcrumbs</name>
>>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbsTag</tag-class>
>>>   <body-content>JSP</body-content>
>>>   <attribute>
>>>       <description>Separator string.</description>
>>>       <name>separator</name>
>>>       <required>yes</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>>   <attribute>
>>>       <description>CSS style to be applied to all breadcrumb
>>>links.</description>
>>>       <name>style</name>
>>>       <required>no</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>>   <attribute>
>>>       <description>CSS style class to be applied to all breadcrumb
>>>links.</description>
>>>       <name>styleClass</name>
>>>       <required>no</required>
>>>       <rtexprvalue>true</rtexprvalue>
>>>   </attribute>
>>> </tag>
>>> <tag>
>>>   <description>A Breadcrumb.</description>
>>>   <name>breadcrumb</name>
>>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbTag</tag-class>
>>>   <body-content>JSP</body-content>
>>>   <attribute>
>>>       <description>URL</description>
>>>       <name>href</name>
>>>       <required>true</required>
>>>       <rtexprvalue>false</rtexprvalue>
>>>   </attribute>
>>> </tag>
>>></taglib>
>>>
>>>
>>>web.xml:
>>>
>>><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>>> version="2.4">
>>>
>>>   <display-name>ROOT</display-name>
>>>
>>>   <servlet>
>>>       <servlet-name>action</servlet-name>
>>>
>>><servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>>>       <init-param>
>>>           <param-name>config</param-name>
>>>           <param-value>/WEB-INF/config/struts-config.xml</param-value>
>>>       </init-param>
>>>       <load-on-startup>1</load-on-startup>
>>>   </servlet>
>>>
>>>   @maven.tomcat.generated@
>>>
>>>   <servlet-mapping>
>>>       <servlet-name>action</servlet-name>
>>>       <url-pattern>*.do</url-pattern>
>>>   </servlet-mapping>
>>>
>>>   <jsp-config>
>>>   <!--
>>>       <taglib>
>>>
>>><taglib-uri>http://projects.cofront.net/taglibs/breadcrumbs</taglib-uri>
>>>           <taglib-location>/WEB-INF/breadcrumbs_1_0.tld</taglib-location>
>>>       </taglib>
>>>   -->
>>>   </jsp-config>
>>>
>>>   <welcome-file-list>
>>>       <welcome-file>index.html</welcome-file>
>>>       <welcome-file>index.htm</welcome-file>
>>>       <welcome-file>index.jsp</welcome-file>
>>>   </welcome-file-list>
>>>
>>></web-app>
>>>
>>>
>>>    
>>>
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>>For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>  
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
> 
>

Re: tld files inside jars are not auto discovered

Posted by Aaron Loucks <lo...@cofront.net>.
I double checked the jar file and the META-INF is in uppercase. Still no 
luck =/

Bill Barker wrote:

>You need to install your tld in /META-INF/.  Paths in jar files are 
>case-sensitive.
>
>"Aaron Loucks" <lo...@cofront.net> wrote in message 
>news:4387F654.4090200@cofront.net...
>  
>
>>I can't get TLD auto discovery to work for any custom taglibs i write
>>when I package them as jars. It works fine for the standard taglibs
>>(core, fmt, etc..). The tld file is packaged inside the jar as
>>'/meta-inf/breadcrumbs_1_0.tld', and breadcrumbs-1.0.jar is located in
>>/WEB-INF/lib. If i put a copy of the tld in the WEB-INF directory and
>>add a <taglib/> entry for it in web.xml, I'm able to use the tags. I
>>don't understand why Tomcat (5.0.28) is auto detecting the TLD files
>>inside the standard taglibs (standard.jar), but it won't autodetect them
>>in jar files i produce. Any help would be greatly appreciated.
>>
>>-Aaron
>>
>>test.jsp:
>>
>><%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>>   pageEncoding="ISO-8859-1" %>
>>
>><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
>><%@ taglib prefix="bc"
>>uri="http://projects.cofront.net/tablibs/breadcrumbs" %>
>>
>><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
>><html>
>><head>
>><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
>><title>Breadcrumb Test</title>
>></head>
>><body>
>>   <bc:breadcrumbs separator=" &#187; " style="color:red;">
>>       <bc:breadcrumb href="page1.htm">page1</bc:breadcrumb>
>>       <bc:breadcrumb href="page2.htm">page2</bc:breadcrumb>
>>       <bc:breadcrumb href="page3.htm">page3</bc:breadcrumb>
>>   </bc:breadcrumbs>
>>
>></body>
>></html>
>>
>>Produces the following error:
>>
>>org.apache.jasper.JasperException: The absolute uri:
>>http://projects.cofront.net/tablibs/breadcrumbs         cannot be
>>resolved in either web.xml or the jar files deployed with this application
>>
>>org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
>>
>>org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
>>
>>org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
>>
>>org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
>>
>>org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
>>   org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
>>   org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
>>   org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
>>   org.apache.jasper.compiler.Parser.parse(Parser.java:126)
>>
>>org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
>>
>>org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
>>   org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
>>   org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
>>
>>org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
>>
>>org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
>>
>>org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
>>   org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
>>   javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>>
>>*note* _The full stack trace of the root cause is available in the
>>Apache Tomcat/5.0.28 logs.
>>
>>
>>
>>_breadcrumbs_1_0.tld:
>>
>>
>><?xml version="1.0" encoding="UTF-8" ?>
>><taglib xmlns="http://java.sun.com/xml/ns/j2ee"
>>   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
>>   version="2.0">
>>
>> <description>Breadcrumbs library</description>
>> <display-name>Breadcrumbs</display-name>
>> <tlib-version>1.1</tlib-version>
>> <short-name>bc</short-name>
>> <uri>http://projects.cofront.net/tablibs/breadcrumbs</uri>
>> <tag>
>>   <description>Creates Breadcrumbs.</description>
>>   <name>breadcrumbs</name>
>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbsTag</tag-class>
>>   <body-content>JSP</body-content>
>>   <attribute>
>>       <description>Separator string.</description>
>>       <name>separator</name>
>>       <required>yes</required>
>>       <rtexprvalue>true</rtexprvalue>
>>   </attribute>
>>   <attribute>
>>       <description>CSS style to be applied to all breadcrumb
>>links.</description>
>>       <name>style</name>
>>       <required>no</required>
>>       <rtexprvalue>true</rtexprvalue>
>>   </attribute>
>>   <attribute>
>>       <description>CSS style class to be applied to all breadcrumb
>>links.</description>
>>       <name>styleClass</name>
>>       <required>no</required>
>>       <rtexprvalue>true</rtexprvalue>
>>   </attribute>
>> </tag>
>> <tag>
>>   <description>A Breadcrumb.</description>
>>   <name>breadcrumb</name>
>>   <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbTag</tag-class>
>>   <body-content>JSP</body-content>
>>   <attribute>
>>       <description>URL</description>
>>       <name>href</name>
>>       <required>true</required>
>>       <rtexprvalue>false</rtexprvalue>
>>   </attribute>
>> </tag>
>></taglib>
>>
>>
>>web.xml:
>>
>><web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>>http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>> version="2.4">
>>
>>   <display-name>ROOT</display-name>
>>
>>   <servlet>
>>       <servlet-name>action</servlet-name>
>>
>><servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>>       <init-param>
>>           <param-name>config</param-name>
>>           <param-value>/WEB-INF/config/struts-config.xml</param-value>
>>       </init-param>
>>       <load-on-startup>1</load-on-startup>
>>   </servlet>
>>
>>   @maven.tomcat.generated@
>>
>>   <servlet-mapping>
>>       <servlet-name>action</servlet-name>
>>       <url-pattern>*.do</url-pattern>
>>   </servlet-mapping>
>>
>>   <jsp-config>
>>   <!--
>>       <taglib>
>>
>><taglib-uri>http://projects.cofront.net/taglibs/breadcrumbs</taglib-uri>
>>           <taglib-location>/WEB-INF/breadcrumbs_1_0.tld</taglib-location>
>>       </taglib>
>>   -->
>>   </jsp-config>
>>
>>   <welcome-file-list>
>>       <welcome-file>index.html</welcome-file>
>>       <welcome-file>index.htm</welcome-file>
>>       <welcome-file>index.jsp</welcome-file>
>>   </welcome-file-list>
>>
>></web-app>
>>
>>
>>    
>>
>
>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
>For additional commands, e-mail: users-help@tomcat.apache.org
>
>  
>


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: tld files inside jars are not auto discovered

Posted by Bill Barker <wb...@wilshire.com>.
You need to install your tld in /META-INF/.  Paths in jar files are 
case-sensitive.

"Aaron Loucks" <lo...@cofront.net> wrote in message 
news:4387F654.4090200@cofront.net...
>I can't get TLD auto discovery to work for any custom taglibs i write
> when I package them as jars. It works fine for the standard taglibs
> (core, fmt, etc..). The tld file is packaged inside the jar as
> '/meta-inf/breadcrumbs_1_0.tld', and breadcrumbs-1.0.jar is located in
> /WEB-INF/lib. If i put a copy of the tld in the WEB-INF directory and
> add a <taglib/> entry for it in web.xml, I'm able to use the tags. I
> don't understand why Tomcat (5.0.28) is auto detecting the TLD files
> inside the standard taglibs (standard.jar), but it won't autodetect them
> in jar files i produce. Any help would be greatly appreciated.
>
> -Aaron
>
> test.jsp:
>
> <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
>    pageEncoding="ISO-8859-1" %>
>
> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
> <%@ taglib prefix="bc"
> uri="http://projects.cofront.net/tablibs/breadcrumbs" %>
>
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
> <html>
> <head>
> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
> <title>Breadcrumb Test</title>
> </head>
> <body>
>    <bc:breadcrumbs separator=" &#187; " style="color:red;">
>        <bc:breadcrumb href="page1.htm">page1</bc:breadcrumb>
>        <bc:breadcrumb href="page2.htm">page2</bc:breadcrumb>
>        <bc:breadcrumb href="page3.htm">page3</bc:breadcrumb>
>    </bc:breadcrumbs>
>
> </body>
> </html>
>
> Produces the following error:
>
> org.apache.jasper.JasperException: The absolute uri:
> http://projects.cofront.net/tablibs/breadcrumbs         cannot be
> resolved in either web.xml or the jar files deployed with this application
>
> org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
>
> org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:411)
>
> org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:118)
>
> org.apache.jasper.compiler.TagLibraryInfoImpl.generateTLDLocation(TagLibraryInfoImpl.java:316)
>
> org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:147)
>    org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:418)
>    org.apache.jasper.compiler.Parser.parseDirective(Parser.java:483)
>    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1539)
>    org.apache.jasper.compiler.Parser.parse(Parser.java:126)
>
> org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
>
> org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
>    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
>    org.apache.jasper.compiler.Compiler.compile(Compiler.java:470)
>    org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
>    org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
>
> org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
>
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
> 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
>    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
>    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>
> *note* _The full stack trace of the root cause is available in the
> Apache Tomcat/5.0.28 logs.
>
>
>
> _breadcrumbs_1_0.tld:
>
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <taglib xmlns="http://java.sun.com/xml/ns/j2ee"
>    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
>    version="2.0">
>
>  <description>Breadcrumbs library</description>
>  <display-name>Breadcrumbs</display-name>
>  <tlib-version>1.1</tlib-version>
>  <short-name>bc</short-name>
>  <uri>http://projects.cofront.net/tablibs/breadcrumbs</uri>
>  <tag>
>    <description>Creates Breadcrumbs.</description>
>    <name>breadcrumbs</name>
>    <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbsTag</tag-class>
>    <body-content>JSP</body-content>
>    <attribute>
>        <description>Separator string.</description>
>        <name>separator</name>
>        <required>yes</required>
>        <rtexprvalue>true</rtexprvalue>
>    </attribute>
>    <attribute>
>        <description>CSS style to be applied to all breadcrumb
> links.</description>
>        <name>style</name>
>        <required>no</required>
>        <rtexprvalue>true</rtexprvalue>
>    </attribute>
>    <attribute>
>        <description>CSS style class to be applied to all breadcrumb
> links.</description>
>        <name>styleClass</name>
>        <required>no</required>
>        <rtexprvalue>true</rtexprvalue>
>    </attribute>
>  </tag>
>  <tag>
>    <description>A Breadcrumb.</description>
>    <name>breadcrumb</name>
>    <tag-class>net.cofront.taglibs.breadcrumbs.BreadCrumbTag</tag-class>
>    <body-content>JSP</body-content>
>    <attribute>
>        <description>URL</description>
>        <name>href</name>
>        <required>true</required>
>        <rtexprvalue>false</rtexprvalue>
>    </attribute>
>  </tag>
> </taglib>
>
>
> web.xml:
>
> <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>  version="2.4">
>
>    <display-name>ROOT</display-name>
>
>    <servlet>
>        <servlet-name>action</servlet-name>
>
> <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
>        <init-param>
>            <param-name>config</param-name>
>            <param-value>/WEB-INF/config/struts-config.xml</param-value>
>        </init-param>
>        <load-on-startup>1</load-on-startup>
>    </servlet>
>
>    @maven.tomcat.generated@
>
>    <servlet-mapping>
>        <servlet-name>action</servlet-name>
>        <url-pattern>*.do</url-pattern>
>    </servlet-mapping>
>
>    <jsp-config>
>    <!--
>        <taglib>
>
> <taglib-uri>http://projects.cofront.net/taglibs/breadcrumbs</taglib-uri>
>            <taglib-location>/WEB-INF/breadcrumbs_1_0.tld</taglib-location>
>        </taglib>
>    -->
>    </jsp-config>
>
>    <welcome-file-list>
>        <welcome-file>index.html</welcome-file>
>        <welcome-file>index.htm</welcome-file>
>        <welcome-file>index.jsp</welcome-file>
>    </welcome-file-list>
>
> </web-app>
>
> 




---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org