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