Hi everybody. I've just joined to the list, but I've seen in the archive Nimal
had the same problem than me.
I'm gonna put here more information, just in case it helps.
The problem happens only when returning strings with the 3rd version of the
library. I've tested the same method on the same server and it works
perfectly with the 2nd version. With other methods that returns values
distinct of string, it works properly too with the 3.0a1. I've sniffed the
ethernet traffic and seems totally compliant with the spec. Anyway, this is
the response from the server:
HTTP/1.1 200 OK
Connection: Keep-Alive
Keep-Alive: timeout=20
Content-Type: text/xml
Transfer-Encoding: chunked
SERVER: AllegroServe/1.2.37
(AllegroCommonLisp) .
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>hello</string></value>
</param>
</params>
</methodResponse>
And this is my trace:
Exception in thread "main" org.apache.xmlrpc.client.XmlRpcClientException:
Failed to parse servers response: Unknown type: string
at
org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:267)
at
org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:216)
at
org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:157)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:146)
at test.XmlRpcRavenTest.main(XmlRpcTest.java:31)
Caused by:
org.xml.sax.SAXParseException: Unknown type: string
at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.startElement(RecursiveTypeParserImpl.java:115)
at org.apache.xmlrpc.parser.MapParser.startElement(MapParser.java:137)
at
org.apache.xmlrpc.parser.RecursiveTypeParserImpl.startElement(RecursiveTypeParserImpl.java:126)
at
org.apache.xmlrpc.parser.XmlRpcResponseParser.startElement(XmlRpcResponseParser.java:126)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown
Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl.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.AbstractSAXParser.parse(Unknown Source)
at
org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:265)
at
org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:216)
at
org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:53)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:166)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:157)
at org.apache.xmlrpc.client.XmlRpcClient.execute(XmlRpcClient.java:146)
at test.XmlRpcRavenTest.main(XmlRpcTest.java:31)
It seems that the org.apache.xerces.xml parser doesn't recognizes the <string>
tag. Could it be possible? I think I'm not the only one with this problem, as
this is a very common situation (to receive a string as a response). The same
happens if the string is enclosed in a struct. I'm gonna download the
xerces-impl sources for having a deeper look, but if anyone have an idea of
the problem or has started working on it, it would be fine to know.