the subject isn't quite right, but it doesn't allow enough characters. I don't really want to know ho ZSI does it, but where!
I need to use another HTTP Server then the one included in ZSI (ZSI.ServiceContainer.ServericeContainer). So now I have got the payload of the HTTP packet from the other HTTP server and need to extract from the SOAP Envelope which function to use with what arguments, etc.
I think I've looked everywhere, but I didn't find the right class which will take the SOAP Envelope as input and then call the right function. I hope someone can help me out!
have you tried ZSI.ServiceContainer._Dispatch ?
Thanks for your response and please let me apologize for answering so late. I've had a really busy week.
I took a good look at ZSI.ServiceContainer._Dispatch, but I have to admit, that I haven't figured out how it works. As I understood _Dispatch needs a ServiceContainer instance, which would be my HTTP Server, wouldn't it? And I actually don't need one, since I have one.
Maybe I elaborate more. I have a Twisted Webserver running (have to do it this way because of extern constraints). The web server receives the SOAP request and passes it to a class, where the request can be handled. So in the class I have the SOAP envelope as a string:
<SOAP-ENV:Envelope xmlns=...>bla blub</SOAP-ENV:Envelope>
From this I now need the part of ZSI, which extracts the method and parameters from the envelope to call the corresponding function. I'm not quite sure, if _Dispatch is the right thing, but on the other site, I haven't fully understood how ZSI accomplishes this functionality.
you can take a look in the globus toolkit: http://www.globus.org/
as I can recall they integrate twisted WS with ZSI. it's written by one of ZSI maintainers, Joshua Buverhuf.
I'm currently using Twisted main loop to call ZSIs web server in a separate thread.
>I'm currently using Twisted main loop to call ZSIs web server in a separate thread.
That won't work for me, because I have to create Web services on the fly, hence, would like to use the Twisted Resource class. That way I don't have to start and stop Threads all the time, but just add resources and the corresponding class to handle the request.
look in http://dev.globus.org/wiki/Python_Core
Thanks again for your help. I've taken a look at the projects, but to be honest, I didn't actually find what I am looking for. Would you like to point me to the corresponding code lines in case, that you are familiar with them?