in reply to Re: SOAP::Lite geocode server
in thread SOAP::Lite geocode server

I followed your recommendations. Here are the results of the trace (truncated):
SOAPAction: "http://localhost/geocode#geocode" <?xml version="1.0" encoding="UTF-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <geocode xmlns="http://localhost/geocode"> <c-gensym3 xsi:type="xsd:string">900 Cherry Ave., San Bruno, CA< +/c-gensym3> </geocode> </soap:Body> </soap:Envelope> SOAP::Transport::HTTP::Client::send_receive: HTTP::Response=HASH(0x859 +a190) SOAP::Transport::HTTP::Client::send_receive: HTTP/1.1 200 OK Connection: close Date: Thu, 25 May 2006 01:11:56 GMT Accept-Ranges: bytes ETag: "16d01ff-94-89b58cc0" Server: Apache/2.2.0 (Fedora) Content-Length: 148 Content-Type: text/plain; charset=UTF-8 Last-Modified: Thu, 25 May 2006 01:11:55 GMT Client-Date: Thu, 25 May 2006 01:11:56 GMT Client-Peer: 127.0.0.1:80 Client-Response-Num: 1 #!/usr/bin/perl -w use strict; use SOAP::Transport::HTTP; require("geocode.pm"); SOAP::Transport::HTTP::CGI->dispatch_to('geocode')->handle; Can't call method "result" without a package or object reference at ./ +geocodeclient.pl line 13. SOAP::Transport::HTTP::Client::DESTROY: () SOAP::Data::DESTROY: () SOAP::Data::DESTROY: () SOAP::Data::DESTROY: () SOAP::Transport::DESTROY: () SOAP::Serializer::DESTROY: () SOAP::Deserializer::DESTROY: () SOAP::Lite::DESTROY: () SOAP::Deserializer::DESTROY: () SOAP::Parser::DESTROY: () SOAP::Transport::DESTROY: () SOAP::Serializer::DESTROY: () SOAP::Data::DESTROY: () SOAP::Data::DESTROY: () SOAP::Lite::DESTROY: ()

Replies are listed 'Best First'.
Re^3: SOAP::Lite geocode server
by rhesa (Vicar) on May 25, 2006 at 01:46 UTC
    Aha! Your soap server isn't executed, it's returned by the web server as a plaintext document!

    You need to make sure that your geocodews.pl is executed as a perl script by the web server. The simplest way to do that, I guess, is by putting it in your cgi-bin directory. Change the proxy() call to reflect the new url of the soap server.

      Oh! Thank you so much! I didn't think of that. Works like a charm now. I hope this SOAP server will respond faster than my old method.
        You'd better run your soap server under mod_perl. Otherwise you will only have wrapped your previous system call in a lot of xml.

        With Apache::Registry, that should be pretty simple to accomplish, but I'd refer you to the mod_perl docs for that.