[Israel.pm] SOAP::Lite and service exploration from WSDL

Uri Bruck bruck at actcom.net.il
Tue Mar 22 10:01:25 PST 2005

When you install SOAP::Lite it comes with something called stubmaker.pl
It's a very short program and needs only SOAP::Lite
stubmaker the url as an argument and generates a module. The method 
definitions are all placed in a hash called %method.
You can run it once on the wsdl you want to use and then use the 
generated package, which in turn uses SOAP::Lite. If you want to do real 
time, you can read it and do what it does.
It's short enough to quote here in its entirety:

use SOAP::Lite;

print "Accessing...\n";
my $schema = SOAP::Schema
   -> schema(shift or die "Usage: $0 <URL with schema description> 
[<service> [<port>]]\n")
   -> parse(@ARGV);

print "Writing...\n";
foreach (keys %{$schema->services}) {
   my $file = "./$_.pm";
   print("$file exists, skipped...\n"), next if -s $file;
   open(F, ">$file") or die $!;
   print F $schema->stub($_);
   close(F) or die $!;
   print "$file done\n";

I just ran it this way:
perl /usr/bin/stubmaker.pl 

(in one line, and I'm not sure it's the latest version of the Amazon web 
and it generated a file called
and it appears to include everything.

Yona Shlomo wrote:
> Hello,
> I know the URL of some WSDL file that describes web
> servives.
> Anyone knows how I can use a SOAP::Lite client to list the
> available servives at that URL, and their interface? (which
> methods are available, which arguments they expect and what
> return values are expected).
> Of course, I can do that by reading the WSDL myself, but I'd
> like to automate the process.
> Thanks.


More information about the Perl mailing list