Hi there,

I've been trying to run a DOMParser as a servlet with Apache/Tomcat and have 
run into some problems. The behavior is different from running it standalone. 
Standalone, the parser verified the files I want, no problems.

First: When setting validation, namespaces and schemasupport to true, I get an 
exception (see below). I never get exceptions when setting two of the three in 
any combination.

Second: The parser does not seem to be able to find the schema to verify. I 
have tried both with http-urls and to place the files locally on the machine. 
When setting validation and schemasupport I get the error: [Error] 
first.xml:2.106: Element type "test" must be declared.

Any ideas what the problem might be?

Thanks!

/Peter

----------------------------------------------
first.xml

<?xml version="1.0" encoding="UTF-8"?>
<test xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance"; 
 xsi:noNamespaceSchemaLocation="http://somehost/first.xsd";>
 <complex>
  <comp1>Kaka</comp1>
  <comp2>1234</comp2>
 </complex>
</test>

first.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema";>
 <xsd:element name="test">
  <xsd:complexType>
   <xsd:sequence>
    <xsd:element name="complex" type="comptype"/>
   </xsd:sequence>
  </xsd:complexType>
 </xsd:element>

 <xsd:complexType name="comptype">
  <xsd:sequence>
   <xsd:element name="comp1" type="xsd:string"/>
   <xsd:element name="comp2" type="xsd:integer"/>
  </xsd:sequence>
 </xsd:complexType>
</xsd:schema>


--------------------------------------------------------------------------------------------
Internal Servlet Error:

java.lang.NoSuchMethodError
 at org.apache.xerces.parsers.DOMParser.startElement(DOMParser.java:1043)
 at 
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:965)
 at 
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1858)
 at 
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1001)
 at 
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
 at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:952)
 at 
org.apache.xerces.validators.common.XMLValidator.resolveSchemaGrammar(XMLValidator.java:2437)
 at 
org.apache.xerces.validators.common.XMLValidator.bindNamespacesToElementAndAttributes(XMLValidator.java:2325)
 at 
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:921)
 at 
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1858)
 at 
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1001)
 at 
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
 at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:952)
 at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:991)
 at Parser.doGet(Parser.java:41)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
 at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
 at org.apache.tomcat.core.Handler.service(Handler.java:286)
 at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
 at 
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
 at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
 at 
org.apache.tomcat.service.connector.Ajp12ConnectionHandler.processConnection(Ajp12ConnectionHandler.java:166)
 at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
 at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
 at java.lang.Thread.run(Thread.java:484)


Reply via email to