value_1 value_2 value_3 value_4 #### #!/usr/bin/perl use strict; use warnings; #use SOAP::Transport::HTTP; eval { require SOAP::Transport::HTTP::Daemon::ForkOnAccept } or die < new (LocalHost => , LocalPort => , Listen => 10, Reuse => 1, Timeout => 10) -> serializer(MySerializer->new) -> dispatch_to('SoapServer'); $Server->handle; BEGIN { package SoapServer; use vars qw(@ISA); @ISA = qw(SOAP::Server::Parameters); use SOAP::Lite; sub createRecord { print "createRecord request received...\n"; shift; my $envelope = pop; my $param_1; my $param_2; if ($envelope->match("//createRecord/param_1")) { $param_1 = $envelope->dataof("//createRecord/param_1")->value; } if ($envelope->match("//createRecord/param_2")) { $param_2 = $envelope->dataof("//createRecord/param_2")->value; } print "param_1=$param_1, param_2=$param_2\n"; my $ResponseCode = 0; my $ResponseMessage = "OK"; SOAP::Data->name("m:Response" => SOAP::Data->value( SOAP::Data->name('m:responseCode' => $ResponseCode)->type("positiveInteger"), SOAP::Data->name('m:responseCodeDescription' => $ResponseMessage)->type("string"))); } } BEGIN { package MySerializer; @MySerializer::ISA = 'SOAP::Serializer'; sub envelope { if( $_[1] =~ /^(?:method|response)$/ ) { $_[2] = SOAP::Data->name("Response")->prefix('m')->uri('ns://TestSoapServer/SoapServer'); } shift->SUPER::envelope(@_); } } #### createRecord request received... param_1=value_1, param_2=value_2 createRecord request received... param_1=value_3, param_2=value_4 #### createRecord request received... param_1=value_1, param_2=value_2