|
justind
justind at ussonet.net
Fri Aug 11 16:45:35 EDT 2006
I posted on the ZSI board to, thought I better here just to cover all
the bases.
Has anyone used ZSI with mod_python? If so, there is an example of how
to use ZSI with mod_python in ZSI's documentation.
This feels like a "I'm being stupid and forgetting/overlooking
something obvious" type of problem.
From the example below, there is a module called MyHandler that has 3
functions (hello,echo and average). You expose these functions through
the dispatch.AsHandler() function in the mod_python code.
Suppose that I only wanted to expose the hello and echo functions, but
not the average function. I want to keep the average function in the
module because some other function(s) I will make later will use it.
(Section 2.1.3).
The following is a complete example of a simple handler. The soap
operations are implemented in the MyHandler module:
def hello():
return "Hello, world"
def echo(*args):
return args
def average(*args):
sum = 0
for i in args: sum += i
return sum / len(args)
Dispatching from within mod_python is achieved by passing the
aforementined MyHandler module to |dispatch.AsHandler()|. The following
code exposes the operations defined in MyHandler via SOAP:
from ZSI import dispatch
from mod_python import apache
import MyHandler
mod = __import__('encodings.utf_8', globals(), locals(), '*')
mod = __import__('encodings.utf_16_be', globals(), locals(), '*')
def handler(req):
dispatch.AsHandler(modules=(MyHandler,), request=req)
return apache.OK
|