I am calling a .NET web service from an axis client running on tomcat 5.0. I got [ns1:VerifyEmailResult: null] as a result while I got the perfect xml response when I run this program as standalone.
Here's what I printed on the screen
Result: [ns1:VerifyEmailResult: null] [Fatal Error] :1:1: Content is not allowed in prolog. org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) ....
Notice that I also got an error 'Content is not allowed in prolog'. Is it because the program trying to parse illegal xml string?
One more thing, In standalone app, I use crimson as a parser, but tomcat uses xerces. I tested more by adding xerces lib to my standalone app and I got the same error as I got from tomcat. It seems like xerces is the real problem. How do I solve this problem? I'm not sure that I can remove xerces lib from my web app.
P.S. I've tried using crimson instead of xerces by setting these system properties
java.lang.IllegalStateException: can't declare any more prefixes in this context at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:691) at org.apache.crimson.parser.Parser2.parse(Parser2.java:337) at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448) at org.apache.crimson.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:185) at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:369) at org.apache.axis.utils.XMLUtils.newDocument(XMLUtils.java:420) at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.java:482) at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361) at java.lang.Thread.run(Thread.java:534)