ActiveState Community

perlsvc Startup function problems

Posted by evilpenguin on 2009-09-15 11:35
OS: Windows

Searching here and with Google hasn't given me what I need so far.

I'm a lifelong *nix developer, so perl on Windows is rather new to me. I'm using the perlsvc tool to make a Windows service. This service provides a web service using SOAP::Transport::HTTP::Daemon.

The problem is the service hangs on "Starting." My Startup function is below:


sub Startup {
## Set up my webservice call
my $soap = SOAP::Lite
-> uri('http://bmc.com/webservices')
-> on_action( sub { join '/', 'http://bmc.com/webservices', $_[1] } )
-> proxy('http://gv1hqpap15.babgsetc.pvt/SDEWebServices/GetChanges.asmx');

my $method = SOAP::Data->name('GetChanges')
->attr({xmlns => 'http://bmc.com/webservices/'});

# don't want to die on 'Broken pipe' or Ctrl-C
$SIG{PIPE} = $SIG{INT} = 'IGNORE';

my $daemon = SOAP::Transport::HTTP::Daemon
-> new (LocalPort => 52380)
-> dispatch_to('Ticket')
;

print "Service URL: [".$daemon->url."]\n";

## Run the daemon. This never returns.
$daemon->handle;
}

I think it is the simple fact that "$daemon->handle" never returns. Is this as simple as I should fork, have the parent die, and have the child run "handle?"