You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by Nannetti Simone <si...@insiel.it> on 2002/12/13 15:53:41 UTC

Digester ClassNotFoundException

Good morning,
I work with Tomcat4.0.3 e windows NT 4.0.
I installed in common/lib these jar: commons-beanutils.jar (v. 1.5),
commons-collections.jar (v. 2.1), commons-logging.jar (v. 1.0.2) and
commons-digester.jar (v. 1.3).
Inside my servlet I coded like this:
============================================
                        Digester digester = new Digester();
                        digester.setValidating(false);
 
digester.addObjectCreate("region","it.tosca.util.Region");
 
digester.addObjectCreate("region/city","it.tosca.util.City");
 
digester.addBeanPropertySetter("region/city/code","code");
 
digester.addBeanPropertySetter("region/city/area","area");
 
digester.addBeanPropertySetter("region/city/description","description");
 
digester.addBeanPropertySetter("region/city/address","address");
 
digester.addBeanPropertySetter("region/city/telephone","telephone");
 
digester.addBeanPropertySetter("region/city/fax","fax");
 
digester.addBeanPropertySetter("region/city/email","email");
                        digester.addSetNext("region/city","addCity");
                        File file = new
File("/home/Sil/SilXML/info_region.xml");
                        Region li = (Region)digester.parse(file);
                        System.out.println(li.toString());
=============================================================
At runtime I caugth this error:

10 [HttpProcessor[8080][4]] ERROR digester.Digester  - Begin event threw
exception
java.lang.ClassNotFoundException: it.tosca.util.Region
        at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader
.java:1127)
        at
org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader
.java:992)
        at
org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:252
)
        at
org.apache.commons.digester.Digester.startElement(Digester.java:1237)
        at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1449)
        at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
        at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
        at
org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
        at org.apache.commons.digester.Digester.parse(Digester.java:1479)
I solved this problem by moving commons-digester.jar from common/lib to
webapps/Sil/WEB-INF/classes and unzip the jar in last directory.
I think it was a Class loader problem. Is there a way for success leaving
commons-digester.jar in common/lib?
Do I have to use another class loader type? How can I set it?
Can you help me?
Best regards,
Simone Nannetti


Re: Digester ClassNotFoundException

Posted by Martin Cooper <ma...@apache.org>.

On Fri, 13 Dec 2002, Nannetti Simone wrote:

> Good morning,
> I work with Tomcat4.0.3 e windows NT 4.0.
> I installed in common/lib these jar: commons-beanutils.jar (v. 1.5),
> commons-collections.jar (v. 2.1), commons-logging.jar (v. 1.0.2) and
> commons-digester.jar (v. 1.3).
> Inside my servlet I coded like this:
> ============================================
>                         Digester digester = new Digester();
>                         digester.setValidating(false);

Right here, you should insert:

    digester.setUseContextClassLoader(true);

That will most likely solve your problem.

--
Martin Cooper


>
> digester.addObjectCreate("region","it.tosca.util.Region");
>
> digester.addObjectCreate("region/city","it.tosca.util.City");
>
> digester.addBeanPropertySetter("region/city/code","code");
>
> digester.addBeanPropertySetter("region/city/area","area");
>
> digester.addBeanPropertySetter("region/city/description","description");
>
> digester.addBeanPropertySetter("region/city/address","address");
>
> digester.addBeanPropertySetter("region/city/telephone","telephone");
>
> digester.addBeanPropertySetter("region/city/fax","fax");
>
> digester.addBeanPropertySetter("region/city/email","email");
>                         digester.addSetNext("region/city","addCity");
>                         File file = new
> File("/home/Sil/SilXML/info_region.xml");
>                         Region li = (Region)digester.parse(file);
>                         System.out.println(li.toString());
> =============================================================
> At runtime I caugth this error:
>
> 10 [HttpProcessor[8080][4]] ERROR digester.Digester  - Begin event threw
> exception
> java.lang.ClassNotFoundException: it.tosca.util.Region
>         at
> org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader
> .java:1127)
>         at
> org.apache.catalina.loader.StandardClassLoader.loadClass(StandardClassLoader
> .java:992)
>         at
> org.apache.commons.digester.ObjectCreateRule.begin(ObjectCreateRule.java:252
> )
>         at
> org.apache.commons.digester.Digester.startElement(Digester.java:1237)
>         at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1449)
>         at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:499)
>         at org.apache.crimson.parser.Parser2.parse(Parser2.java:304)
>         at
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:433)
>         at org.apache.commons.digester.Digester.parse(Digester.java:1479)
> I solved this problem by moving commons-digester.jar from common/lib to
> webapps/Sil/WEB-INF/classes and unzip the jar in last directory.
> I think it was a Class loader problem. Is there a way for success leaving
> commons-digester.jar in common/lib?
> Do I have to use another class loader type? How can I set it?
> Can you help me?
> Best regards,
> Simone Nannetti
>
>
> --
> To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
> For additional commands, e-mail: <ma...@jakarta.apache.org>
>
>