You are viewing a plain text version of this content. The canonical link for it is here.
Posted to taglibs-dev@jakarta.apache.org by "Mark R. Diggory" <md...@latte.harvard.edu> on 2002/10/08 16:16:39 UTC
Jasper complains when parsing valid TLD (was: Can't deploy Custom
Tag Library ... )
Jean-Francois Arcand wrote:
> Well, after reading all you mail/exchange (look at my
> email-address....Craig have the same ;-) ), you should take time to
> think/re-read your stuff before sending that type of email. I know
> it's frustrating, but .....
Point well taken, I apoligize if anyone found it irritating. I know I
can be overbearing sometimes with my opinion. ;-) But I'll still argue
that Sun made some bad decisions in packaging all this "stuff" into j2sdk.
> Anyway, back to real work! I have a feeling that you tld file is maybe
> not xml compliant or you are facing a bug that I have fixed with
> Xerces in Tomcat:
>
> But IMBW..I'm sure it's something like that. Maybe Forte4J (made by
> SUN ;-) ) is doing something under the hood......also, try with Xerces
> 2.1. I know, Crimson has the same problem, but maybe there is a bug in
> both version. Anyway, I'm probably not the best person for that
> problem, but try to post you problem on the xerces-j mailling list
> (xml.apache.org). Maybe you will have sometings better than my
> recommendation....
>
> -- Jeanfrancois
With this in mind, I decided to provide a test example to see if it is
truly an issue with Tomcat and not with Forte. So I took the log tag out
of the examples directory and placed it into its own log.jar with tld
descriptor. In this war one can see the following layout.
/Test/WEB-INF/lib/log.jar (containing the examples/log tag classes and
tld file).
/Test/WEB-INF/web.xml (tag descriptor referencing the jar file)
/Test/WEB-INF/build.xml (how the log jar was built)
/Test/jsp (example)
What I've found is that ther are two issues going on
1.) The taglib cannot load in 4.0.3, but does load successfully in
4.0.4+ and 4.1.* so this is a bug in 4.0.3 LE and Full on WindowsXP/J2sdk.
2.) Since it works on 4.0.4+ and 4.1.* versions of
Tomcat/WindowsXP/J2sdk, there is *something else wrong* with my taglibs
that causing failure on those platforms.
I guess I can live without it working on 4.0.3, I'm trying to upgrade
anyways, if required I can provide a *work-around* for my developers...
So, on 4.1.* with logging cranked way up, I've been seeing errors that
Jasper encountered a TEI class when the tld already has a variable? Very
wierd error. Here's an example of a tag in my taglib, if anyone sees
anything wrong with this please let me know, it is still valid against
the dtd. (again this was a tld generated by Forte4J).
<tag>
<name>catch</name>
<tag-class>edu.harvard.hmdc.taglib.conditional.CatchTag</tag-class>
<tei-class>edu.harvard.hmdc.taglib.conditional.CatchTagTEI</tei-class>
<body-content>JSP</body-content>
<description/>
<variable>
<name-from-attribute>name</name-from-attribute>
<variable-class>java.lang.Throwable</variable-class>
<declare>true</declare>
<scope>NESTED</scope>
</variable>
<attribute>
<name>class_name</name>
<required>true</required>
<rtexprvalue>false</rtexprvalue>
<type>String</type>
</attribute>
<attribute>
<name>name</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
<type>String</type>
</attribute>
<example/>
</tag>
Here is the exception in 4.1.12
org.apache.jasper.JasperException: null(-1,-1) variable subelement
defined in tld when TagExtraInfo class
edu.harvard.hmdc.taglib.conditional.CatchTagTEI is non-null
at
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:94)
at
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:417)
at
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:154)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoImpl.java:386)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.java:273)
at
org.apache.jasper.compiler.TagLibraryInfoImpl.(TagLibraryInfoImpl.java:183)
at
org.apache.jasper.compiler.Parser.parseTaglibDirective(Parser.java:354)
at org.apache.jasper.compiler.Parser
I get the feeling Forte is generating more information than Jasper Likes.
-Mark