How does ZSI know which function to call

cledith
2008-06-24
2013-05-02
  • cledith
    cledith
    2008-06-24

    Hi,
    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!

    Cheers,
    Torsten

     
    • Shay Halsband
      Shay Halsband
      2008-06-25

      have you tried ZSI.ServiceContainer._Dispatch ?

      good luck
      shay

       
    • cledith
      cledith
      2008-07-01

      Hello,
      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.

      Cheers,
      Torsten

       
      • Shay Halsband
        Shay Halsband
        2008-07-01

        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.

        shay

         
        • cledith
          cledith
          2008-07-01

          >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.

           
    • Shay Halsband
      Shay Halsband
      2008-07-01

      • cledith
        cledith
        2008-07-02

        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?