You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2003/11/10 23:22:44 UTC

DO NOT REPLY [Bug 24586] New: - Compilation error when exposing an Inner class

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24586>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=24586

Compilation error when exposing an Inner class

           Summary: Compilation error when exposing an Inner class
           Product: Tomcat 4
           Version: 4.1.27
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: Jasper
        AssignedTo: tomcat-dev@jakarta.apache.org
        ReportedBy: martini_t@yahoo.com


If a JSP tag attempts to expose an inner class, the following error results:

====================================================================
An error occurred at line: 3 in the jsp file: /TestTag.jsp

Generated servlet error:
D:\dev\jakarta-tomcat-4.1.27
\work\Standalone\localhost\InnerBeanTest\TestTag_jsp.java:63: cannot resolve 
symbol
symbol  : class FooTag$InnerBean 
location: package test
perchance you meant 'FooTag.InnerBean'
      exposedBean = (test.FooTag$InnerBean) pageContext.findAttribute
("exposedBean");
                         ^
2 errors


	at org.apache.jasper.compiler.DefaultErrorHandler.javacError
(DefaultErrorHandler.java:130)
	at org.apache.jasper.compiler.ErrorDispatcher.javacError
(ErrorDispatcher.java:293)
	at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:353)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:370)
	at org.apache.jasper.JspCompilationContext.compile
(JspCompilationContext.java:473)
	at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:190)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:295)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain
====================================================================
You can use the following examples to generate the error:
====================================================================
package test;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class FooTag extends TagSupport
{
    public static class InnerBean
    {
        public InnerBean()
        {
            super();
        }
    }
    public int doStartTag() throws JspException
    {
	super.doStartTag();
        InnerBean innerBean = new InnerBean();
        pageContext.setAttribute(getId(), innerBean);
	return SKIP_BODY;
    }
}
====================================================================
package test;
import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.VariableInfo;
import test.FooTag;
public class FooTei extends TagExtraInfo
{
	private static final Class type = FooTag.InnerBean.class;
	public VariableInfo[] getVariableInfo(TagData data)
	{
		VariableInfo typeInfo = new VariableInfo(data.getId
(),type.getName(),true,VariableInfo.AT_END);
		return new VariableInfo[] { typeInfo };
	}
}
====================================================================
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!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>test</short-name>
    <uri></uri>
    <tag>
        <name>fooTag</name>
        <tag-class>test.FooTag</tag-class>
        <tei-class>test.FooTei</tei-class>
        <body-content>JSP</body-content>
        <description>
        </description>
        <attribute>
            <name>id</name>
            <required>true</required>
            <description></description>
        </attribute>        
      </tag>
</taglib>
====================================================================
<%@page contentType="text/html; charset=utf-8"%>
<%@ taglib prefix="ibc" uri="http://InnerBeanClass.net" %>

<ibc:fooTag id="exposedBean"/>
<%=exposedBean%>

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