I have an external xmlrpc server that's implemented in Ruby.
My other client
apps coded in Python, Ruby, and Smalltalk can communicate
with it fine. My
Java app (which utilizes Apache's xmlrpc 1.0) cannot parse
the returned xml
results sent from the server, however. Rather than rewrite
the server using
Apache's xmlrpc 1.0 Java implementation I would like to get
the Java client
end aligned with the rest of my environment.
Viewing the traffic being sent back and forth using Ethereal
I see that the
Ruby xmlrpc server is sending back results in the following
format using a
test method call:
<?xml version="1.0" ?>
<methodResponse>
<params>
<param>
<value>
<string>foo
</string>
</value>
</param>
</params>
</methodResponse>
Here is the response being sent back from a test xmlrpc
server I created
using Apache's xmlrpc 1.0 implementation:
<?xml version="1.0" ?>
<methodResponse>
<params>
<param>
<value>
<array>
<data>
<value>foo
</value>
</data>
</array>
</value>
</param>
</params>
</methodResponse>
Both test method calls coming from the client were
identically coded. It's
the server that's returning different results depending on
whether or not
it's implemented in Ruby or in Apache's xmlrpc 1.0 Java
implementation. Is
there a way that I can use an alternative content handler on
the Java xmlrpc
client end so that I can hook into the Ruby xmlrpc server?
This server is
based on Electric XML and is called REXML.
|