tomcat-taglibs-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonas Büchel <jonas.buec...@gartenmann.ch>
Subject Failed to load or instantiate TagExtraInfo (TEI-class)
Date Fri, 18 Jun 2004 16:29:51 GMT
Hi.
 
In the mail-archive.com I found the mail conversation below.
I get an error that is related to this issue (exception can be found below).
 
Is that a bug or a programming fault of mine.
 
Any information about that would be very appreciated!
Thanks a lot for help!
 
Best regards, Jonas
 
 
 
org.apache.jasper.JasperException: Failed to load or instantiate
TagExtraInfo class: ch.gsa.prodass3.taglib.TagAddAttributeTEI
 
org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.
java:50)
 
org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:378
)
 
org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:283
)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoIm
pl.java:422)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.ja
va:248)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java
:162)
 
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:22
0)
 
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:461)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)
 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
11)
 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
74)
 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:810)

root cause 

java.lang.ClassNotFoundException: ch.gsa.prodass3.taglib.TagAddAttributeTEI
 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1340)
 
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.jav
a:1189)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.createTagInfo(TagLibraryInfoIm
pl.java:419)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.parseTLD(TagLibraryInfoImpl.ja
va:248)
 
org.apache.jasper.compiler.TagLibraryInfoImpl.<init>(TagLibraryInfoImpl.java
:162)
 
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:22
0)
 
org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
        org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:461)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)
        org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)
 
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:5
11)
 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:2
74)
 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
        org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
        javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 
note The full stack trace of the root cause is available in the Apache
Tomcat/5.0.25 logs.
 
 
jar-file with the tag-classes and the tei-classes is located in
/WEB-INF/lib/






The class TagAddAttributeTEI.class is included in the jar-file.













The beginning of the tld-file looks like this:













<?xml version = '1.0' encoding = 'windows-1252'?>






<!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>db</short-name>






<uri>taglib.tld</uri>






<description>Datenbankzugriff</description>






<tag>






<name>addattribute</name>






<tag-class>ch.gsa.prodass3.taglib.TagAddAttribute</tag-class>






<tei-class>ch.gsa.prodass3.taglib.TagAddAttributeTEI</tei-class>






<body-content>jsp</body-content>






<display-name>addattribute</display-name>






<description>A short description...</description>






<attribute>






<name>useexisting</name>






<required>true</required>






<rtexprvalue>false</rtexprvalue>






</attribute>






<attribute>






<name>procedurename</name>






<required>true</required>






<rtexprvalue>true</rtexprvalue>






</attribute>






<attribute>






<name>itemid</name>






<required>true</required>






<rtexprvalue>true</rtexprvalue>






</attribute>






<attribute>






<name>attribute</name>






<required>true</required>






<rtexprvalue>true</rtexprvalue>






</attribute>






<attribute>






<name>sprachid</name>






<required>false</required>






<rtexprvalue>true</rtexprvalue>






</attribute>






<attribute>






<name>type</name>






<required>false</required>






<rtexprvalue>true</rtexprvalue>






</attribute>






<attribute>






<name>message</name>






<required>false</required>






<rtexprvalue>false</rtexprvalue>






</attribute>






<attribute>






<name>status</name>






<required>false</required>






<rtexprvalue>false</rtexprvalue>






</attribute>






<example>Brief snippet showing how to use this tag.</example>






</tag>
 
 
 
 
 
Yoav Shapiras reply:
 
Hi,
 
>Unfortunately I have not got an EASY SMALL replication the the instance
>where the the class does exists and the exception is thrown - working
on
>it!
> 
>Any thoughts will be appreciated.
 
Thank you for the detailed description.  Make sure you save the message
you sent.  Once you come up with a small WAR that shows the problem,
create a bugzilla issue for it ( <http://issues.apache.org/bugzilla/>
http://issues.apache.org/bugzilla/),
attach your WAR and the email you just sent.  We will attempt to
reproduce the problem and come up with a solution ;)
 
Yoav Shapira

 

 

Carl Oliviers Mail:

 

 

Hi.
 
With regards the TEI classloading issue I mentioned in my previous mail
(Issues on Tomcat5.0.19) - I *think* that the engine reports this error -
but in previous versions of Tomcat the exception was not thrown (bubbled to
the top) - blocking the running of ANY JSP page referencing the taglib in
question.  Maybe in Tomcat 5.0.19 this exception should be caught and logged
but not thrown all the way to the top?
 
Yoav:  To replicate it is easy of course:
 
Create a custom tag-lib - the tld file and some classes for the tags -
however one or more of your tags MUST have a TEI class in the Tag definition
in the TLD file - but the class file this TEI class entry reference must NOT
exist in the classpath.
 
This *should* cause ANY page that includes/reference the tag library to
throw an exception about not being able to find the TEI class - running in
Tomcat 5.0.19.
 
With regards my reasoning - I deployed a site of ours to JBoss (embedding
Tomcat 4.1.29) today - and noticed that the ENGINE component was reporting
the exception about not finding certain TEI classes - however the webapp
deployment worked fine.
 
Now - I know this is not the error I reported in ym last mail - but it is
related I think.  In my mail I mentioned that on the first request to a site
running on Tomcat 5.0.19 after a restart I SOMETIMES (I would say 30% of the
time) get the same exception - except that the TEI class the exception was
being reported on ACTUALLY DOES exist in the webapp's /WEB-INF/classes path.
 
It seems that the classloader has not finished loading (is that possible?)
at the time that tomcat tries to compile the JSP (which involves parsing any
custom taglibs the page references).
 
Unfortunately I have not got an EASY SMALL replication the the instance
where the the class does exists and the exception is thrown - working on it!
 
Any thoughts will be appreciated.

 

 

Mit freundlichen Grüssen

 

Jonas Büchel
dipl. Informatiktechniker TS

---------------------------------------------------------
Gartenmann Software AG
Erdbuehlstrasse 17, CH-8472 Seuzach
Telefon   +41 52 338 00 81
Fax   +41 52 338 00 88
http://www.gartenmann.ch/ <http://www.gartenmann.ch/> 
mailto:jonas.buechel@gartenmann.ch <mailto:jonas.buechel@gartenmann.ch> 
---------------------------------------------------------

 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message