This should be really simple but it's not working for me.
From my DOS window I can run....
## soapclient.pl ##
use SOAP::Lite;
print SOAP::Lite
-> uri('http://www.soaplite.com/Demo')
-> proxy('http://services.soaplite.com/hibye.cgi')
-> hi()
-> result;
exit;
... and I get the expected result.
However, if I put the 'same' SOAP server script on my server.
## soapserver.cgi ##
#!/usr/bin/perl
use SOAP::Transport::HTTP;
SOAP::Transport::HTTP::CGI
-> dispatch_to('Demo')
-> handle;
package Demo;
sub hi {
return "hello, world";
}
sub bye {
return "goodbye, cruel world";
}
1;
exit;
and run....
## soapclient.pl ##
use SOAP::Lite;
print SOAP::Lite
-> uri('http://www.anything.com/Demo')
-> proxy('http://dev.domain.com/cgi-bin/soapserver.cgi')
-> hi()
-> result;
exit;
I get a '500 Internal ServerError at soapclient.pl line 2'
I do not have access to the logs (don't ask), so I added
use CGI::Carp(qw/warningsToBrowser fatalsToBrowser/);
to my .cgi script and got this error..
Unexpected Content-Type 'text/html; charset=ISO-8859-1' returned.
The problem is possibly with the uri. I just don't understand how it's constructed.
My reading tells me it can be almost anything followed by a package name where the package path is relative to the proxy script.