Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Comment on

( #3333=superdoc: print w/ replies, xml ) Need Help??

Dear Monks,

I am trying to understand the sample code that is used to document SOAP::Transport::HTTP. Shown here:

#!/usr/bin/perl -w use strict; use Data::Dumper; use SOAP::Transport::HTTP; # change LocalPort to 81 if you want to test it with soapmark.pl my $daemon = SOAP::Transport::HTTP::Daemon -> new (LocalAddr => 'localhost', LocalPort => 81) # specify list of objects-by-reference here -> objects_by_reference(qw(My::PersistentIterator My::SessionItera +tor My::Chat)) # specify path to My/Examples.pm here -> dispatch_to('/Your/Path/To/Deployed/Modules', 'Module::Name', ' +Module::method') ; print "Contact to SOAP server at ", $daemon->url, "\n"; $daemon->handle;
Here is the output I get when I execute it:
$ sudo ./soap_server.pl Contact to SOAP server at http://localhost:81/
I really do not know what is suppose to happen but I did find the perl script perlmark.pl that is suppose to test soap servers. Here is the modified version of perlmark.pl I am running:
$ cat perlmark.pl #!/usr/bin/perl -w #!d:\perl\bin\perl.exe # -- SOAP::Lite -- soaplite.com -- Copyright (C) 2001 Paul Kulchenko - +- use strict; use Benchmark; use SOAP::Lite on_fault => sub {my($soap, $res) = @_; die ref $res ? $ +res->faultdetail : $soap->transport->status, "\n"}; #use My::Examples; my %dests = ( # local => ['local://localhost/cgi-bin/soap.cgi' => 'htt +p://www.soaplite.com/My/Examples'], # mod_perl => ['http://localhost/soap/' => 'http://www.soap +lite.com/My/Examples'], # CGI => ['http://localhost/cgi-bin/soap.cgi' => 'http +://www.soaplite.com/My/Examples'], daemon => ['http://localhost:81/' => 'http://www.soaplit +e.com/My/Examples'], # daemon => ['http://localhost:81/' => 'http://www.soapli +te.com/My/Examples'], # 'Apache::Registry' => ['http://localhost/mod_perl/soap.mod_cgi' => +'http://www.soaplite.com/My/Examples'], # tcpip => ['tcp://localhost:82' => 'http://www.soaplite +.com/My/Examples'], # direct => ['' => 'My::Examples'], ); my $s; my %tests = ( simple => sub {$s->getStateName(1)}, array => sub {$s->getStateName((1) x 100)}, string => sub {$s->getStateName(1 x 100)}, ); my $testnum = 3; my $testtime = 5; my %result; print STDERR <<DISCLAIMER; This test should be used only for comparison different Perl server implementations running in your environment. DISCLAIMER print STDERR "All tests may take up to ", keys(%dests) * keys(%tests) +* $testnum * $testtime, " sec\n"; foreach my $dest (keys %dests) { my($proxy, $uri) = @{$dests{$dest}}; $s = $proxy ? SOAP::Lite->proxy($proxy)->uri($uri) : $uri; foreach my $test (keys %tests) { printf STDERR "%s [%s] ", $dest, $test; eval {$tests{$test}->()}; warn('skipped, ', $@), next if $@; my($tps) = 0; for (1..$testnum) { my $r = Benchmark::countit($testtime => $tests{$test}); my($pu, $ps, $n) = @{$r}[1,2,5]; $tps += $n / ($pu + $ps); print STDERR "."; } printf STDERR " %.5s call/s\n", $result{$dest}{$test} = $tps / $te +stnum; } }
When execute perlmark.pl I get this output:
$ ./perlmark.pl This test should be used only for comparison different Perl server implementations running in your environment. All tests may take up to 45 sec daemon [array] skipped, daemon [simple] skipped, daemon [string] skipped,
Why is it skipping tests? I suspect it has something to do with this bit of the server code ...
# specify list of objects-by-reference here -> objects_by_reference(qw(My::PersistentIterator My::SessionItera +tor My::Chat)) # specify path to My/Examples.pm here -> dispatch_to('/Your/Path/To/Deployed/Modules', 'Module::Name', ' +Module::method')
... what are object-by-reference and what are "Deploy Modules"? I am certain that there are many Monks here that can enlighten me. THANKS!

In reply to I do not understand how to write a SOAP server. by Plankton

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • Outside of code tags, you may need to use entities for some characters:
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?
    Username:
    Password:

    What's my password?
    Create A New User
    Chatterbox?
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others contemplating the Monastery: (9)
    As of 2014-12-26 22:19 GMT
    Sections?
    Information?
    Find Nodes?
    Leftovers?
      Voting Booth?

      Is guessing a good strategy for surviving in the IT business?





      Results (176 votes), past polls