package My::Parameters; use vars qw(@ISA); @ISA = qw(SOAP::Server::Parameters); sub echo { my $self = shift; pop; # last parameter is envelope (SOAP::SOM object) # don't want to echo it @_; } sub echodata { my $self = shift; my @parameters = pop->dataof(SOAP::SOM::paramsin); @parameters; } sub echotwo { SOAP::Data->type(xml => "$_[1]$_[2]"); } sub autobind { my $self = shift; my $param1 = shift; my $param2 = SOAP::Data->name('myparam' => shift() * 2); return $param1, $param2; } sub addheader { my $self = shift; my $param1 = shift; my $header = pop->headerof(SOAP::SOM::headers); return $param1, $header->value($header->value x 2); } sub byorder { my $self = shift; my($a, $b, $c) = @_; return "1=$a, 2=$b, 3=$c"; } sub byname { # input parameter(s), envelope (SOAP::SOM object) my $self = shift; my($a, $b, $c) = SOAP::Server::Parameters::byName([qw(a b c)], @_); return "a=$a, b=$b, c=$c"; } sub bynameororder { # input parameter(s), envelope (SOAP::SOM object) my $self = shift; my($a, $b, $c) = SOAP::Server::Parameters::byNameOrOrder([qw(a b c)], @_); return "a=$a, b=$b, c=$c"; } sub die_simply { die 'Something bad happened in our method'; } sub die_with_object { die SOAP::Data->name(something => 'value')->uri('http://www.soaplite.com/'); } sub die_with_fault { die SOAP::Fault->faultcode('Server.Custom') # will be qualified ->faultstring('Died in server method') ->faultdetail(bless {code => 1} => 'BadError') ->faultactor('http://www.soaplite.com/custom'); } 1;