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
>