You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Thomas Hehl <th...@nowhereatall.com> on 2003/09/10 15:37:15 UTC

Annoying taglib problem

I have never used taglibs before. Be warned!:)

New setup of tomcat 4.12. The tag itself is stored in WEB-INF/lib/forerunner-webapps.jar, but the error is the same whether the jar file is there or not. I simply don't know where to look next.

I am getting the following error (edited):

2003-09-09 12:49:13 Invalid PUBLIC ID: -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN
2003-09-09 12:49:14 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: /writings.jsp(14,6) Unable to load class CsvDisplayTag
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(Unknown Source)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(Unknown Source)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(Unknown Source)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Unknown Source)
	at org.apache.jasper.compiler.Parser.parseElements(Unknown Source)
	...
	at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
	at java.lang.Thread.run(Thread.java:536)

Here is the JSP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<%@ taglib uri="/WEB-INF/taglib.tld" prefix="ft" %>
<HTML>
<HEAD>
    <TITLE>Forerunner International</TITLE>
    <META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1252">
    <META name=CREATED content=20021205;7043944 >
    <META name=CHANGED content=20021205;7102744 >
    <META name=KEYWORDS content="apostolic prophetic ministry teaching prophecy Bruce Hehl Thom Hehl Jesse Hehl Lisa Schrock Robert L. Buntin Thomas Mallory" >

    <%@ include file="/includes/masthead.include" %>

    <H1>Welcome</H1>
    <P>
      <ft:CsvDisplayTag/>
    </P>

    <%@ include file="/includes/pagefooter.include" %>

</HTML>

And here is the taglib.tld file:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN"
"DTDs/web-jsptaglibrary_1_2.dtd">

<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>1.2</jsp-version>
  <short-name>forerunner-tags</short-name>
  <uri>http://www.forerunnerintl.org/taglibs/forerunner-webapps.jar</uri>

  <tag>
    <name>CsvDisplayTag</name>
    <tag-class>forerunner.tag.CsvDisplayTag</tag-class>
    <body-content>empty</body-content>
    <display-name>CSV (Commma-seperated values) Formatter</display-name>
  </tag>

</taglib>

And here is the tag itself:

package forerunner.tag;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.Tag;
import javax.servlet.jsp.JspTagException;

public class CsvDisplayTag implements Tag
{
    private PageContext pageContext;
    private Tag         parent;

    public CsvDisplayTag()
    {
        super();
    }

    public int doStartTag() throws JspTagException
    {
        return SKIP_BODY;
    }

    public int doEndTag() throws JspTagException
    {
        try
        {
            pageContext.getOut().write("Hellow World!");
        } catch(java.io.IOException ex)
        {
            throw new JspTagException("IO Error:" + ex.getMessage());
        }
        return EVAL_PAGE;
    }

    public void release() {}

    public void setPageContext(final javax.servlet.jsp.PageContext pageContext)
    {
        this.pageContext=pageContext;
    }

    public Tag getParent()
    {
        return parent;
    }
    public void setParent(final Tag parent)
    {
        this.parent=parent;
    }
}

And here is a listing of forerunner-webapps.jar:

META-INF/
META-INF/MANIFEST.MF
forerunner/
forerunner/servlets/
forerunner/servlets/main/
forerunner/tag/
forerunner/servlets/main/MainControllerServlet.class
forerunner/tag/CsvDisplayTag.class

Re: Annoying taglib problem

Posted by Jon Wingfield <jo...@mkodo.com>.
Put a taglib entry in your web.xml:

   <taglib>
     <taglib-uri>your_uri_here</taglib-uri>
     <taglib-location>/WEB-INF/taglib.tld</taglib-location>
   </taglib>

and change your jsp page:

<%@ taglib uri="your_uri_here" prefix="ft" %>

As per section JSP.7.3.6.3 of the JSP 1.2 specification, available here:
http://www.jcp.org/aboutJava/communityprocess/final/jsr053/
Also:
http://jakarta.apache.org/taglibs/guidelines.html

HTH,

Jon

Thomas Hehl wrote:

> I have never used taglibs before. Be warned!:)
> 
> New setup of tomcat 4.12. The tag itself is stored in WEB-INF/lib/forerunner-webapps.jar, but the error is the same whether the jar file is there or not. I simply don't know where to look next.
> 
> I am getting the following error (edited):
> 
> 2003-09-09 12:49:13 Invalid PUBLIC ID: -//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN
> 2003-09-09 12:49:14 StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception
> org.apache.jasper.JasperException: /writings.jsp(14,6) Unable to load class CsvDisplayTag
> 	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(Unknown Source)
> 	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(Unknown Source)
> 	at org.apache.jasper.compiler.ErrorDispatcher.jspError(Unknown Source)
> 	at org.apache.jasper.compiler.Parser.parseCustomTag(Unknown Source)
> 	at org.apache.jasper.compiler.Parser.parseElements(Unknown Source)
> 	...
> 	at org.apache.catalina.core.ContainerBase.invoke(Unknown Source)
> 	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> 	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405)
> 	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:380)
> 	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508)
> 	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:533)
> 	at java.lang.Thread.run(Thread.java:536)
> 
> Here is the JSP:
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <%@ taglib uri="/WEB-INF/taglib.tld" prefix="ft" %>
> <HTML>
> <HEAD>
>     <TITLE>Forerunner International</TITLE>
>     <META http-equiv=CONTENT-TYPE content="text/html; charset=windows-1252">
>     <META name=CREATED content=20021205;7043944 >
>     <META name=CHANGED content=20021205;7102744 >
>     <META name=KEYWORDS content="apostolic prophetic ministry teaching prophecy Bruce Hehl Thom Hehl Jesse Hehl Lisa Schrock Robert L. Buntin Thomas Mallory" >
> 
>     <%@ include file="/includes/masthead.include" %>
> 
>     <H1>Welcome</H1>
>     <P>
>       <ft:CsvDisplayTag/>
>     </P>
> 
>     <%@ include file="/includes/pagefooter.include" %>
> 
> </HTML>
> 
> And here is the taglib.tld file:
> 
> <?xml version="1.0" encoding="ISO-8859-1" ?>
> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2/EN"
> "DTDs/web-jsptaglibrary_1_2.dtd">
> 
> <taglib>
>   <tlib-version>1.0</tlib-version>
>   <jsp-version>1.2</jsp-version>
>   <short-name>forerunner-tags</short-name>
>   <uri>http://www.forerunnerintl.org/taglibs/forerunner-webapps.jar</uri>
> 
>   <tag>
>     <name>CsvDisplayTag</name>
>     <tag-class>forerunner.tag.CsvDisplayTag</tag-class>
>     <body-content>empty</body-content>
>     <display-name>CSV (Commma-seperated values) Formatter</display-name>
>   </tag>
> 
> </taglib>
> 
> And here is the tag itself:
> 
> package forerunner.tag;
> 
> import javax.servlet.jsp.*;
> import javax.servlet.jsp.tagext.Tag;
> import javax.servlet.jsp.JspTagException;
> 
> public class CsvDisplayTag implements Tag
> {
>     private PageContext pageContext;
>     private Tag         parent;
> 
>     public CsvDisplayTag()
>     {
>         super();
>     }
> 
>     public int doStartTag() throws JspTagException
>     {
>         return SKIP_BODY;
>     }
> 
>     public int doEndTag() throws JspTagException
>     {
>         try
>         {
>             pageContext.getOut().write("Hellow World!");
>         } catch(java.io.IOException ex)
>         {
>             throw new JspTagException("IO Error:" + ex.getMessage());
>         }
>         return EVAL_PAGE;
>     }
> 
>     public void release() {}
> 
>     public void setPageContext(final javax.servlet.jsp.PageContext pageContext)
>     {
>         this.pageContext=pageContext;
>     }
> 
>     public Tag getParent()
>     {
>         return parent;
>     }
>     public void setParent(final Tag parent)
>     {
>         this.parent=parent;
>     }
> }
> 
> And here is a listing of forerunner-webapps.jar:
> 
> META-INF/
> META-INF/MANIFEST.MF
> forerunner/
> forerunner/servlets/
> forerunner/servlets/main/
> forerunner/tag/
> forerunner/servlets/main/MainControllerServlet.class
> forerunner/tag/CsvDisplayTag.class
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
>