trying to use XMLRPC

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

trying to use XMLRPC

gregarican
I recently downloaded XMLRPC 1.0 from Dolphin Map. My environment is
Dolphin Value Edition 5.1. When I tried to install it I received a
Transcript message stating there IXMLHttpRequest is undeclared. I
understand that this class deals with MSXML, which I do have resident
on my Windows 2000 Professional workstation (versions up through 4.0).
What am I missing in order to start building my XMLRPC client? Does
anyone have a point in the right direction?

Many thanks!


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

Sean M-4
>I recently downloaded XMLRPC 1.0 from Dolphin Map. My environment is
> Dolphin Value Edition 5.1. When I tried to install it I received a
> Transcript message stating there IXMLHttpRequest is undeclared. I
> understand that this class deals with MSXML, which I do have resident
> on my Windows 2000 Professional workstation (versions up through 4.0).
> What am I missing in order to start building my XMLRPC client? Does
> anyone have a point in the right direction?

Dolphin Value Edition doesn't contain the xml classes... You could probably
import them using the tools provided (Active-X Component Wizard).

It would take some work though; Object Arts add some of their own methods to
the default imported ones.

I'll have a look at it tonight and update the package to degrade gracefully
if it is loaded into Value Edition


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

Sean M-7
In reply to this post by gregarican
>I recently downloaded XMLRPC 1.0 from Dolphin Map. My environment is
> Dolphin Value Edition 5.1. When I tried to install it I received a
> Transcript message stating there IXMLHttpRequest is undeclared. I
> understand that this class deals with MSXML, which I do have resident
> on my Windows 2000 Professional workstation (versions up through 4.0).
> What am I missing in order to start building my XMLRPC client? Does
> anyone have a point in the right direction?

I just updated the site;

http://www.arcturus.com.au/dolphin/

If you have a look at the XmlRpc section, there is now a separate version
for a Value Edition image.

I generated the MSXML package using the ActiveX Wizard in a Value Edition
image:

- Open up ActiveX Component Wizard
- Add the MSXML 2.0 using Browse
- Select the MSXML 2.0 entry, and clicked next
- Used all the default settings, click next
- Delsected all of the classes, and only generated the IXMLHttpRequest
class.

I've saved you those steps, but it is probably good for you to go through it
anyway, so you can see first hand how easy it is to import any ActiveX
object you might need to use within Dolpin.


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
Sean M wrote:

> I just updated the site;
>
> http://www.arcturus.com.au/dolphin/
>
>
> If you have a look at the XmlRpc section, there is now a separate version
> for a Value Edition image.
>
>
> I generated the MSXML package using the ActiveX Wizard in a Value Edition
> image:
>
>
> - Open up ActiveX Component Wizard
> - Add the MSXML 2.0 using Browse
> - Select the MSXML 2.0 entry, and clicked next
> - Used all the default settings, click next
> - Delsected all of the classes, and only generated the IXMLHttpRequest
> class.
>
>
> I've saved you those steps, but it is probably good for you to go through it
> anyway, so you can see first hand how easy it is to import any ActiveX
> object you might need to use within Dolpin.
>
>

Thanks for this. That wizard does make things a snap. So far I really
am impressed with Dolphin Smalltalk. Looking forward to learning more
as I go along!


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
gregarican wrote:

> Thanks for this. That wizard does make things a snap. So far I really
> am impressed with Dolphin Smalltalk. Looking forward to learning more
> as I go along!

Speaking of learning more as I go along... <newbie alert>

When I am attempting to pass my XMLRPC method to an existing server, I
get a 'Missing <methodResponse> tag' error message and apparently the
method fails. Looking at the XMLRPC server the incoming IP address
doesn't appear to be from my Dolphin client PC. The incoming IP address
appears to be from my Windows domain controller/proxy server. I have
another development box with Dolphin 5.1 VE on it and trying this the
same thing happens.

I have a test Ruby XMLRPC client app on these development boxes and
that works fine. And the incoming IP address is correct as displayed on
the XMLRPC server.

Any ideas what's going on?
</newbie alert>


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
gregarican wrote:

> Speaking of learning more as I go along... <newbie alert>
>
> When I am attempting to pass my XMLRPC method to an existing server, I
> get a 'Missing <methodResponse> tag' error message and apparently the
> method fails. Looking at the XMLRPC server the incoming IP address
> doesn't appear to be from my Dolphin client PC. The incoming IP address
> appears to be from my Windows domain controller/proxy server. I have
> another development box with Dolphin 5.1 VE on it and trying this the
> same thing happens.
>
>
> I have a test Ruby XMLRPC client app on these development boxes and
> that works fine. And the incoming IP address is correct as displayed on
> the XMLRPC server.
>
>
> Any ideas what's going on?
> </newbie alert>

Instead of using the XMLRPC server's IP address I used its hostname and
things resolve fine. The XMLRPC server sees the methods being passed
from the correct Dolphin client PC. But I still get failures returned
stating 'Missing <methodResponse> tag' to my Dolphin test app. Here's
the basic code:

test := XmlRpcClient url: '<a href="http://myBox:8888'">http://myBox:8888'.
test perform: 'myTestMethod' withArguments: #('argumentOne'
'argumentTwo').

Hmm.....


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
gregarican wrote:

> Instead of using the XMLRPC server's IP address I used its hostname and
> things resolve fine. The XMLRPC server sees the methods being passed
> from the correct Dolphin client PC. But I still get failures returned
> stating 'Missing <methodResponse> tag' to my Dolphin test app. Here's
> the basic code:
>
> test := XmlRpcClient url: '<a href="http://myBox:8888'">http://myBox:8888'.
> test perform: 'anotherTestMethod' withArguments: #('argumentOne'
> 'argumentTwo').
>
>
> Hmm.....

Looking closer at what was going on I see that the XMLRPC server is
sending back an HTTP 500 error, so that's why the Dolphin client isn't
receiving a methodResponse tag. I have revised my code to include the
/RPC2 URL reference. So know things look like:

test := XmlRpcClient url: 'http://myBox:8888/RPC2'.
test perform: 'anotherTestMethod' with: 'anArgument'.

Same results, however. I have even used Ethereal to capture the TCP
packets going back and forth between my failed Dolphin XMLRPC client
attempts and my successful Ruby XMLRPC client attempts. Here is what is
being sent by the Dolphin client:

POST /RPC2
HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR
1.1.4322)
Host: myBox:8888
Content-Length: 155
Connection: Keep-Alive
Cache-Control: no-cache

<?xml version="1.0"?>
  <methodCall>
    <methodName>anotherTestMethod
    </methodName>
      <params>
        <param><value><string>anArgument
        </string></value></param>
      </params>
  </methodCall>

Then here is what's being sent from my Ruby client:

POST /RPC2
HTTP/1.1
Accept: */*
Connection: close
Content-Type: text/xml
User-Agent: XMLRPC::Client (Ruby 1.6.8)
Host: myBox:8888
Content-Length: 152

<?xml version="1.0"?>
  <methodCall>
    <methodName>anotherTestMethod
    </methodName>
      <params>
        <param><value><string>anArgument
        </string></value></param>
      </params>
  </methodCall>

>From what I see the XML tagged code being sent is identical. But the
HTTP header being sent is different. I couldn't readily see where to
modify the Dolphin HTTP header. Is this worth looking into deeper? I
really need to get this XMLRPC mechanism working for a client app I'm
testing out. Any assistance at all would be appreciated. I have
searched around for any sample code that's out there in this area and
only found a brief reference in a Cincom hosted blog entry...


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
I have VisualWorks 7.3nc loaded on my development box and using its
XmlRpcClient class my test code ran out fine. As far as I can tell in
the Dolphin version the HTTP headers should be set with the
XmlRpcClient class' initialize method. But the header references are
commented out with the default install. Here they are below:

initialize

        "Set the required headers for XmlRpc"
"
        self contentType: 'text/xml'.
        self fieldValueAt: 'User-Agent' put: 'Dolphin RPC Client'.
"

When I unremarked these header references the attempts to pass my test
method to the XMLRPC server still fail. Curious if anyone's Dolphin
environment has these elements working without a hitch.


Reply | Threaded
Open this post in threaded view
|

Re: trying to use XMLRPC

gregarican
To remedy this at least for my Dolphin 5.1 Value Edition client I had
to add the following code below to my XmlRpcClient>>executeMethod:

request
    setRequestHeader: 'Content-Type'
    bstrValue: 'text/xml'.

request
    setRequestHeader: 'User-Agent'
    bstrValue: 'Dolphin XMLRPC Client'.

After that things worked fine. Just an FYI in case anyone else runs
into a similar issue. This one had me spending a few hours spinning my
wheels :-)