Class: XMLRPC::Server
| Relationships & Source Files | |
| Super Chains via Extension / Inclusion / Inheritance | |
|
Class Chain:
self,
WEBrickServlet,
BasicServer
|
|
|
Instance Chain:
|
|
| Inherits: |
XMLRPC::WEBrickServlet
|
| Defined in: | lib/xmlrpc/server.rb |
Overview
Implements a standalone XML-RPC server. The method #serve is left if a SIGHUP is sent to the program.
require "xmlrpc/server"
s = XMLRPC::Server.new(8080)
s.add_handler("michael.add") do |a,b|
a + b
end
s.add_handler("michael.div") do |a,b|
if b == 0
raise XMLRPC::FaultException.new(1, "division by zero")
else
a / b
end
end
s.set_default_handler do |name, *args|
raise XMLRPC::FaultException.new(-99, "Method #{name} missing" +
" or wrong number of parameters!")
end
s.serve
Constant Summary
BasicServer - Inherited
ERR_MC_EXPECTED_STRUCT, ERR_MC_MISSING_METHNAME, ERR_MC_MISSING_PARAMS, ERR_MC_RECURSIVE_CALL, ERR_MC_WRONG_PARAM, ERR_MC_WRONG_PARAM_PARAMS, ERR_METHOD_MISSING, ERR_UNCAUGHT_EXCEPTION
Class Method Summary
-
.new(port = 8080, host = "127.0.0.1", maxConnections = 4, stdlog = $stdout, audit = true, debug = true, *a) ⇒ Server
constructor
Creates a new
Serverinstance, which is a XML-RPC server listening on the givenportand accepts requests for the givenhost, which islocalhostby default.
WEBrickServlet - Inherited
BasicServer - Inherited
| .new | Creates a new |
Instance Attribute Summary
WEBrickServlet - Inherited
| #require_path_info? | Deprecated from WEBrick/1.2.2, but does not break anything. |
Instance Method Summary
-
#serve
Call this after you have added all you handlers to the server.
-
#shutdown
Stops and shuts the server down.
WEBrickServlet - Inherited
| #get_instance, | |
| #get_valid_ip | Return the valid IP addresses that are allowed to connect to the server. |
| #service, | |
| #set_valid_ip | Specifies the valid IP addresses that are allowed to connect to the server. |
BasicServer - Inherited
| #add_handler | Adds |
| #add_introspection | Adds the introspection handlers |
| #add_multicall | Adds the multi-call handler |
| #get_default_handler | Returns the default-handler, which is called when no handler for a method-name is found. |
| #get_service_hook | Returns the service-hook, which is called on each service request (RPC) unless it’s |
| #process, | |
| #set_default_handler | Sets |
| #set_service_hook | A service-hook is called for each service request (RPC). |
| #call_method, | |
| #check_arity | Returns |
| #dispatch, #handle, #multicall_fault | |
ParseContentType - Included
ParserWriterChooseMixin - Included
| #set_parser | Sets the |
| #set_writer | Sets the |
| #create, #parser | |
Constructor Details
.new(port = 8080, host = "127.0.0.1", maxConnections = 4, stdlog = $stdout, audit = true, debug = true, *a) ⇒ Server
Creates a new Server instance, which is a XML-RPC server listening on the given port and accepts requests for the given host, which is localhost by default.
The server is not started, to start it you have to call #serve.
The optional audit and debug parameters are obsolete!
All additionally provided parameters in *a are by-passed to BasicServer.new.
# File 'lib/xmlrpc/server.rb', line 575
def initialize(port=8080, host="127.0.0.1", maxConnections=4, stdlog=$stdout, audit=true, debug=true, *a) super(*a) require 'webrick' @server = WEBrick::HTTPServer.new(:Port => port, :BindAddress => host, :MaxClients => maxConnections, :Logger => WEBrick::Log.new(stdlog)) @server.mount("/", self) end
Instance Method Details
#serve
Call this after you have added all you handlers to the server. This method starts the server to listen for XML-RPC requests and answer them.
# File 'lib/xmlrpc/server.rb', line 585
def serve signals = %w[INT TERM HUP] & Signal.list.keys signals.each { |signal| trap(signal) { @server.shutdown } } @server.start end
#shutdown
Stops and shuts the server down.
# File 'lib/xmlrpc/server.rb', line 593
def shutdown @server.shutdown end