You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Mark Slater <ma...@analogsoftware.com> on 2005/04/08 11:30:00 UTC
Interop with PHP5 SoapClient - IncompatibleClassChangeError
I'm working on a test for PHP5's Soap Client (version 5.0.3) and Apache
Axis (version 1.2 RC3). I'm getting an exception:
<Servlet.service() for servlet axis threw exception>
java.lang.IncompatibleClassChangeError
at
org.apache.axis.message.MessageElement.addTextNode(MessageElement.java:
1387)
at
org.apache.axis.message.SOAPHandler.addTextNode(SOAPHandler.java:148)
at
org.apache.axis.message.SOAPHandler.endElement(SOAPHandler.java:112)
at
org.apache.axis.encoding.DeserializationContext.endElement(Deserializati
onContext.java:1087)
at
org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDis
patcher.dispatch(Unknown Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unkno
wn 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.AbstractSAXParser.parse(Unknown
Source)
at javax.xml.parsers.SAXParser.parse(Unknown Source)
at
org.apache.axis.encoding.DeserializationContext.parse(DeserializationCon
text.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)
at
org.apache.axis.server.AxisServer.initSOAPConstants(AxisServer.java:
345)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:279)
at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:697)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.j
ava:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
.....
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:684)
at java.lang.Thread.run(Thread.java:552)
The java function is defined as:
boolean confirmCredentials( String username, String password ) { return
false; }
This is something I didn't think would be difficult to process or
handle.
PHP is sending this request (ormatted with newlines and whitespace for
easier reading):
==============
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ns1="http://rpc.whisper.ucsc.edu"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<ns1:confirmCredentials>
<username xsi:type="xsd:string">sdfdsf</username>
<password xsi:type="xsd:string">xddsfs</password>
</ns1:confirmCredentials>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
============
As you can see, the types being assigned are xsd:string... I was under
the impression this would be automatically converted into Java String
objects. Or is there some sort of setup I need to do for that to
happen. Any suggestions are greatly appreciated.
Mark