At 06:40 PM 4/15/2007, you wrote:
>Hi Jake,
>
>Jacob Kjome <[EMAIL PROTECTED]> wrote on 04/15/2007 07:08:01 PM:
>
>> I've got a parser extending DOMParser and call
>> parser.setDocumentClassName(MetaDataDocument.class.getName()) .
>
>This method gets called during reset. Your own code probably shouldn't be
>calling it. Setting the "document-class-name" property [1] is the
>supported way to override the default Document implementation.
>
You're right. And I was confused. It was setting this value on my
own wrapper class for DOMParser, which then sets the property the
appropriate way.
>> The problem is, the class MetaDataDocument is in a child classloader and
>
>> Xerces reports that it can't find it.....
>>
>> [xmlc] Error: java.lang.IllegalArgumentException:
>> MissingDocumentClassName:
>> The class name of the document factory
>> "org.enhydra.xml.xmlc.metadata.MetaDataDocument" used to construct
>> the DOM tree could not be found.
>> [xmlc] java.lang.IllegalArgumentException:
>> MissingDocumentClassName: The class name of the document factory
>> "org.enhydra.xml.xmlc.metadata.MetaDataDocument" used to construct
>> the DOM tree could not be found.
>>
>> As you may recognize, this is in the context of an Ant
>> task. Specifically, the XMLC Ant task. Ant includes XercesImpl.jar
>> in ANT_HOME/lib. My library is added to the taskdef via a
>> <classpath> element. I know Xerces runs through some fancy routines
>> to find classloaders, but it doesn't seem to be doing the job
>> here. I'm wondering if you have any suggestions to resolve this issue?
>
>Is the child ClassLoader which knows how to load MetaDataDocument the
>current thread's context ClassLoader? That's where Xerces looks.
>
Thanks for the hint. I resolved this by resetting the context class
loader to the one that loaded the Ant task and setting it back again
in a "finally" block before leaving the method.
Jake
>
>[1]
>http://xerces.apache.org/xerces2-j/properties.html#dom.document-class-name
>
>Michael Glavassevich
>XML Parser Development
>IBM Toronto Lab
>E-mail: [EMAIL PROTECTED]
>E-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]