Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Не подключается библиотека тегов(Tomcat)


Автор: AnikinAlexey 17.2.2007, 20:05
Создал класс для тега, оформил для него tld файл, пытаюсь заюзать на jsp-странице - tomcat выдает ошибку. 
Класс
Код

package pollTags;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspException;
import java.io.IOException;

public class pollTag extends BodyTagSupport {
    public int doAfterBody() throws JspTagException {
        try {
            pageContext.getOut().print("doAfterBody");
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return EVAL_BODY_INCLUDE;
    }

    public int doStartTag() throws JspException{
        try {
            pageContext.getOut().print("doStartTag");
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return EVAL_BODY_BUFFERED;
    }

    public void doInitBody() throws JspException{
        try {
                    pageContext.getOut().print("doInitBody");
                } catch (IOException e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }
    }

    public int doEndTag() throws JspException {
        try {
            pageContext.getOut().print("doInitBody");
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        return EVAL_PAGE;
    }
}


*.tld
Код

<?xml version="1.0" encoding="ISO-8859-1"?>
<taglib>
    <description>A tag library exercising PollTag handlers.</description>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>PollTagLibrary</short-name>
    <uri>/pollTags</uri>
    <tag>
        <name>Poll</name>
        <tag-class>pollTags.pollTag</tag-class>
        <body-content>JSP</body-content>
    </tag>
   </taglib>

*.jsp
Код

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="as" uri="/pollTags" %>
<html>
  <head><title>Simple jsp page</title></head>
  <as:Poll/>
  <body>Place your content here</body>
</html>


Добавлено @ 20:06 
Tomcat выдал следующее
Код

type Exception report

message 

description The server encountered an internal error () that prevented it from fulfilling this request.

exception 

org.apache.jasper.JasperException: File "/pollTags" not found
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:50)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:114)
    org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java:159)
    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:211)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:146)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:267)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:255)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:556)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:296)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:245)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:802)


note The full stack trace of the root cause is available in the Apache Tomcat/5.5.4 logs.



Автор: Tony 17.2.2007, 20:12
Попробуй убери слеш в URI

Автор: lunix 17.2.2007, 20:41
Попробуй дописать в web.xml:

Код

    <jsp-config>
        <taglib>
            <taglib-uri>http://someUrl</taglib-uri>
            <taglib-location>someLocation</taglib-location>
        </taglib>
</jsp-config>


Автор: Tony 17.2.2007, 20:45
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
    
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>ACID GUI</short-name>    
    <uri>http://killer.com</uri>
    
    <!--            Tabbed panel             -->
    
    <tag>
        <name>tabbedPanel</name>
..............

Автор: AnikinAlexey 17.2.2007, 22:53
ничего не помогает  smile 

Почитал на других форума - много воды по сабжу. Говорят, что это болезнь tomcat`a, а вот как лечить ее ни кто не говорить ((. В JBoss`е вроде работает...

Автор: Tony 17.2.2007, 23:03
A в какую папку ти положил *.tld

Автор: AnikinAlexey 17.2.2007, 23:05
папка WEB-INF. Пробовал кидать в корень, тоже не помогло.

Автор: Tony 17.2.2007, 23:07
Укажи в tld
Код

<!DOCTYPE taglib
        PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
        "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">

Автор: AnikinAlexey 17.2.2007, 23:11
Пробовал, не работает (

Автор: Tony 17.2.2007, 23:24
Какая версия кота?

Автор: AnikinAlexey 17.2.2007, 23:56
Apache Tomcat 5.5

Автор: Tony 18.2.2007, 00:17
мда... А какая иерархия каталогов? 
projectName 
-WEB-INF
-- classes
-- lib
-- META-INF
-fajliki

Как ты деплоишь в Tomcat ? Попробуй создать war архив и вру4ную положить в webapps папку томката.

Автор: Maksym 19.2.2007, 14:05
AnikinAlexey
pollTags.tld положи в WEB-INF
в pollTags.tld:
Код

<taglib>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
<taglib>
    <tlib-version>1.0</tlib-version>
    <jsp-version>1.2</jsp-version>
    <short-name>pollTags</short-name>
    <uri>WEB-INF/pollTags.tld</uri>
    <tag>
        <name>Poll</name>
        <tag-class>pollTags.pollTag</tag-class>
    </tag>
</taglib>

в JSP:
Код

<%@ taglib prefix="pollTags" uri="WEB-INF/pollTags.tld" %>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)