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;