1package My::Parameters; 2 3use vars qw(@ISA); 4@ISA = qw(SOAP::Server::Parameters); 5 6sub echo { 7 my $self = shift; 8 pop; # last parameter is envelope (SOAP::SOM object) 9 # don't want to echo it 10 @_; 11} 12 13sub echodata { 14 my $self = shift; 15 my @parameters = pop->dataof(SOAP::SOM::paramsin); 16 @parameters; 17} 18 19sub echotwo { 20 SOAP::Data->type(xml => "<a>$_[1]</a><b>$_[2]</b>"); 21} 22 23sub autobind { 24 my $self = shift; 25 my $param1 = shift; 26 my $param2 = SOAP::Data->name('myparam' => shift() * 2); 27 return $param1, $param2; 28} 29 30sub addheader { 31 my $self = shift; 32 my $param1 = shift; 33 my $header = pop->headerof(SOAP::SOM::headers); 34 return $param1, $header->value($header->value x 2); 35} 36 37sub byorder { 38 my $self = shift; 39 my($a, $b, $c) = @_; 40 return "1=$a, 2=$b, 3=$c"; 41} 42 43sub byname { # input parameter(s), envelope (SOAP::SOM object) 44 my $self = shift; 45 my($a, $b, $c) = SOAP::Server::Parameters::byName([qw(a b c)], @_); 46 return "a=$a, b=$b, c=$c"; 47} 48 49sub bynameororder { # input parameter(s), envelope (SOAP::SOM object) 50 my $self = shift; 51 my($a, $b, $c) = SOAP::Server::Parameters::byNameOrOrder([qw(a b c)], @_); 52 return "a=$a, b=$b, c=$c"; 53} 54 55sub die_simply { 56 die 'Something bad happened in our method'; 57} 58 59sub die_with_object { 60 die SOAP::Data->name(something => 'value')->uri('http://www.soaplite.com/'); 61} 62 63sub die_with_fault { 64 die SOAP::Fault->faultcode('Server.Custom') # will be qualified 65 ->faultstring('Died in server method') 66 ->faultdetail(bless {code => 1} => 'BadError') 67 ->faultactor('http://www.soaplite.com/custom'); 68} 69 701;