By the way, is this combination of parsers in a backtrace alarming? at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:131) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:384) at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:318) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator$XSIErrorReporter.reportError(XMLSchemaValidator.java:410) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.reportSchemaError(XMLSchemaValidator.java:3165) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.processAttributes(XMLSchemaValidator.java:2630) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.handleStartElement(XMLSchemaValidator.java:2037) at com.sun.org.apache.xerces.internal.impl.xs.XMLSchemaValidator.startElement(XMLSchemaValidator.java:685) at com.sun.org.apache.xerces.internal.jaxp.validation.ValidatorHandlerImpl.startElement(ValidatorHandlerImpl.java:549) at org.apache.xerces.jaxp.JAXPValidatorComponent$XNI2SAX.startElement(Unknown Source) at org.apache.xerces.jaxp.JAXPValidatorComponent.startElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanStartElement(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source) at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:124)
On Thu, Oct 29, 2009 at 1:41 PM, Michael Glavassevich <mrgla...@ca.ibm.com>wrote: > Hi Benson, > > DocumentBuilderFactory and the other JAXP factories use the current > thread's context ClassLoader by default for locating the implementation. If > for whatever reason the implementation you wanted loaded isn't visible to > this ClassLoader you'll get a different implementation, most likely the > default one in the JDK. Couldn't tell you how this is occurring in your > environment. I've never used Tomcat or Maven. > > Thanks. > > Michael Glavassevich > XML Parser Development > IBM Toronto Lab > E-mail: mrgla...@ca.ibm.com > E-mail: mrgla...@apache.org > > Benson Margulies <bimargul...@gmail.com> wrote on 10/29/2009 12:35:42 PM: > > > > I have some code that uses DocumentBuilderFactory etc. (JAXP) to > > parse a document with W3C schema validation. > > > > My unit tests work fine with Xerces in the classpath. > > > > When the business is all packaged into a webapp and deployed in > > tomcat (via mvn tomcat:run), the validation fails with bogus error, > > and the backtrace shows that I'm using whatever nasty version of > > JAXP is sitting in the JVM. Short of calling > > DocumentBuilderFactoryImpl, can anyone tell me what I'm doing wrong? > > The xerces Jar is in the WAR file in the right place. > >