You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Rusty Wright <ru...@gmail.com> on 2007/12/31 22:08:58 UTC

using deferredValue in a simple tag file

Tomcat is version 6.0.14, java is jdk1.6.0_03, eclipse is 3.3.1.1.  
Tomcat is running under/in eclipse.

In a nutshell, I'm trying to use deferredValue with an attribute in a 
simple jsp tag file, the kind of tag file that contains jsp, no java 
code.  When I added deferred value to my attribute tag I get the an 
error from tomcat, "JasperException: Invalid JSP version defined for tag 
file".  I can't figure out how to specify a jsp version for my tag file.

I tried adding and using a tld instead of a tag dir but I can't get that 
to work.  Here are the relevant files.

I either need to know how to specify the jsp version, or how to 
construct and set up the tld file.

Thanks for your help.


====================
Top of web.xml file:
====================

<?xml version="1.0" encoding="UTF-8"?>

<web-app
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
        http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    id="spring_app" version="2.5">
    <display-name>spring_app</display-name>

    <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>spring_app</param-value>
    </context-param>

====================
Top of jsp, get1.jsp, using a tag dir:
====================

<?xml version="1.0" encoding="ISO-8859-1" ?>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1">
    <jsp:directive.page language="java"
        contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1" />
    <jsp:text>
        <![CDATA[ <?xml version="1.0" encoding="ISO-8859-1" ?> ]]>
    </jsp:text>
    <jsp:text>
        <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
    </jsp:text>

<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:tag="urn:jsptagdir:/WEB-INF/tags/">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>get1</title>
</head>

<body>

<tag:example3 pageStringVar="${string1}" />


====================
The tag file, example3.tag, using deferredValue:
====================

<%@ tag
    body-content="scriptless"
%>

<%@ taglib
    prefix="c"
    uri="http://java.sun.com/jsp/jstl/core"
%>

<%@ attribute
    name="pageStringVar"
    required="true"
    rtexprvalue="true"
    deferredValue="true"
%>

<div>pageStringVar (in tag file): <c:out value="${pageStringVar}" /></div>


====================
The tld file, example3.tld:
====================

<?xml version="1.0" encoding="UTF-8"?>

<taglib version="2.1"
    xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
web-jsptaglibrary_2_1.xsd">
    <tlib-version>1.0</tlib-version>

    <jspversion>2.1</jspversion>

    <short-name>example3</short-name>

    <tag-file>
        <name>example3</name>
        <path>/WEB-INF/tags/example3.tag</path>
    </tag-file>
</taglib>


====================
Tomcat stack trace from using a tag dir:
====================
org.apache.jasper.JasperException: org.apache.jasper.JasperException: 
Invalid JSP version defined for tag file at /WEB-INF/tags/example3.tag
    
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:51)
    
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:409)
    
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:265)
    
org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:219)
    
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:200)
    
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167)
    
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
    
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158)
    
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
    
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


root cause

java.lang.RuntimeException: org.apache.jasper.JasperException: Invalid 
JSP version defined for tag file at /WEB-INF/tags/example3.tag
    
org.apache.jasper.compiler.ImplicitTagLibraryInfo.getTagFile(ImplicitTagLibraryInfo.java:199)
    
org.apache.jasper.compiler.JspDocumentParser.parseCustomAction(JspDocumentParser.java:1158)
    
org.apache.jasper.compiler.JspDocumentParser.startElement(JspDocumentParser.java:402)
    
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown 
Source)
    com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown 
Source)
    
com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
Source)
    javax.xml.parsers.SAXParser.parse(Unknown Source)
    
org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:179)
    
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:200)
    
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167)
    
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
    
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158)
    
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
    
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


====================
Top of jsp, get1.jsp, file using a tld:
====================

<?xml version="1.0" encoding="ISO-8859-1" ?>

<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1">
    <jsp:directive.page language="java"
        contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1" />
    <jsp:text>
        <![CDATA[ <?xml version="1.0" encoding="ISO-8859-1" ?> ]]>
    </jsp:text>
    <jsp:text>
        <![CDATA[ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ]]>
    </jsp:text>

<html
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:fn="http://java.sun.com/jsp/jstl/functions"
    xmlns:tag="urn:jsptld:/WEB-INF/tlds">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>get1</title>
</head>

<body>

<tag:example3 pageStringVar="${string1}" />


====================
Tomcat stack trace with tld:
====================

org.apache.jasper.JasperException: /WEB-INF/views/get1.jsp(17,42) Could 
not add one or more tag libraries.
    
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
    
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:88)
    
org.apache.jasper.compiler.JspDocumentParser.parse(JspDocumentParser.java:214)
    
org.apache.jasper.compiler.ParserController.doParse(ParserController.java:200)
    
org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:167)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:306)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:286)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:273)
    
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:566)
    
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    
org.springframework.web.servlet.view.InternalResourceView.renderMergedOutputModel(InternalResourceView.java:167)
    
org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:239)
    
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1158)
    
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:808)
    
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:476)
    
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:431)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)


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