The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

POE::Component::Server::SimpleXMLRPC

DESCRIPTION

XML-RPC server based on SimpleHTTP and Frontier::RPC2.

Dispatches incoming requests to CODEREF handlers, using RPC_MAP.

Each request is processed in separate Wheel::Run process, so it

is fork-on-demand model.

SYNOPSIS

 use POE qw(Component::Server::SimpleXMLRPC Component::Logger);
 
 POE::Component::Logger->spawn( ConfigFile => 'external_config_file' );
 
 POE::Component::Server::SimpleXMLRPC->new(
    PORT => 5555,
    ADDRESS => '127.0.0.1',
    RPC_MAP => { test => sub { return { res => 'test ok:' } },
    ALIAS => 'HTTPD',
    RECV_SESSION => 'HTTP_GET',
    LOGGER => { SESSION => 'logger', EVENT => 'log' }
 );
 
 $poe_kernel->run();

Look at the example folder for simple example of client and server scripts.

METHODS

new

Takes usual options hash, as Po::Co::Server::SimpleHTTP does,

but with few additions.

ALIAS

Optional. Server session alias. Defaulted to 'HTTPD'.

RECV_SESSION

Optional. Controller session alias. Defaulted to 'HTTP_GET'.

FUNC_TIMEOUT

Optional. Max time for request processing, in seconds. Defaulted to 120.

RPC_MAP

Required. HashRef of procedures names and their CodeRefs.

LOGGER

Optional. HashRef with SESSION and EVENT names of logger session.

No default logger will be created.

All other options are passed to SimpleHTTP constructor.

_getParamsFromRequest

Internal Simple parser of incoming xml.

EVENTS

Server session is a SimpleHTTP server, so refer to it's documentation.

Controller session events:

GOT_default

Internal Main controller session. Parses request, starts wheel::run,

tries to handle errors.

remap

Public Changes RPC_MAP. The only argument must be the same as RPC_MAP -

HashRef of procedures and their CodeRef.

BUGS

Should be. Use rt to report.

Tests do not cover all abilities and possible points of failures.

It tests only basic functionality.

AUTHOR

Denis Pokataev aka Catone. 2008.

COPYRIGHTS

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.