Loading ...
Sorry, an error occurred while loading the content.

RE: [soaplite] How to integrate SOAP::Lite into a custom server

Expand Messages
  • Keanan Smith
    Hmm, it seems to me the quickest way (Provided you don t want to go with mod_perl) is to go with the CGI transport method, then you can simply invoke your
    Message 1 of 3 , Oct 1, 2002
    • 0 Attachment
      Hmm, it seems to me the quickest way (Provided you don't want to go with
      mod_perl) is to go with the CGI transport method, then you can simply invoke
      your 'service' as a cgi through your existing webserver, and soap will
      handle the soap request and send the proper response back to the webserver
      (Who is free to pass it back to the client :)

      -----Original Message-----
      From: crazyfewl2002 [mailto:tom@...]
      Sent: Tuesday, October 01, 2002 8:42 AM
      To: soaplite@yahoogroups.com
      Subject: [soaplite] How to integrate SOAP::Lite into a custom server


      I am trying to setup a SOAP server based on an existing
      webserver/application server infrastructure. SOAP::Lite as a server
      seems to insist on using its on transport mechanisms. Is there some
      way to provide it with the XML message manually and have it simply
      take care of the method invocation.

      We do not want to use the SOAP mod perl transport since we do not
      want to run any business logic on our webservers.

      Here is our scenario:

      We have an apache front end that will be accepting SOAP requests.
      A Perl handler will take the SOAP XML documents it receives and pass
      them via a proprietary interface to own in-house application server.

      This application server will ideally instantiate a SOAP::Lite object
      using the passed XML message. It will then trigger any
      methods/classes as per usual.

      My 2 issues are
      1) Making sure all the right information is collected on the apache
      end. So far I have $r->read() the POSTED content, ie the XML and
      suspect the various additional http headers are not required unless
      we want to compress the data.

      2) Instantiating a server SOAP::Lite object within an _existing_
      server framework by providing it with an XML document. This bit I
      cant seem to fathom since all examples presume use of the bundled
      Transport mechanisms.

      This is the sort of thing I have been trying ...

      $xml is the xml message received from the client

      my $s = new SOAP::Server;
      $s->request( HTTP::Request->new($xml) );
      $s->dispatch_to('/my/modules/dir/');
      $s->handle;

      This doesnt work since SOAP::Server doesnt know what ->request()
      method is. But it should explain what I'm trying to do.

      Any suggestions/comments appreciated.

      Many thanks,
      Tom



      To unsubscribe from this group, send an email to:
      soaplite-unsubscribe@yahoogroups.com



      Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
    • crazyfewl2002
      I have discovered after much digging that the following works rather nicely... use SOAP::Lite; my $server = new SOAP::Server;
      Message 2 of 3 , Oct 1, 2002
      • 0 Attachment
        I have discovered after much digging that the following works rather
        nicely...

        use SOAP::Lite;
        my $server = new SOAP::Server;
        $server->dispatch_to('/my/modules/');
        my $response = $server->handle( $xml );

        Just got to figure out how to format the headers correctly in my
        response and it should work nicely.

        Shame this isnt documented. The above approach means I can now run
        the SOAP Handler in my existing multiprocess preforking server and
        away from apache.




        --- In soaplite@y..., Keanan Smith <KSmith@n...> wrote:
        > Hmm, it seems to me the quickest way (Provided you don't want to go
        with
        > mod_perl) is to go with the CGI transport method, then you can
        simply invoke
        > your 'service' as a cgi through your existing webserver, and soap
        will
        > handle the soap request and send the proper response back to the
        webserver
        > (Who is free to pass it back to the client :)
        >
        > -----Original Message-----
        > From: crazyfewl2002 [mailto:tom@a...]
        > Sent: Tuesday, October 01, 2002 8:42 AM
        > To: soaplite@y...
        > Subject: [soaplite] How to integrate SOAP::Lite into a custom server
        >
        >
        > I am trying to setup a SOAP server based on an existing
        > webserver/application server infrastructure. SOAP::Lite as a server
        > seems to insist on using its on transport mechanisms. Is there some
        > way to provide it with the XML message manually and have it simply
        > take care of the method invocation.
        >
        > We do not want to use the SOAP mod perl transport since we do not
        > want to run any business logic on our webservers.
        >
        > Here is our scenario:
        >
        > We have an apache front end that will be accepting SOAP requests.
        > A Perl handler will take the SOAP XML documents it receives and
        pass
        > them via a proprietary interface to own in-house application
        server.
        >
        > This application server will ideally instantiate a SOAP::Lite
        object
        > using the passed XML message. It will then trigger any
        > methods/classes as per usual.
        >
        > My 2 issues are
        > 1) Making sure all the right information is collected on the
        apache
        > end. So far I have $r->read() the POSTED content, ie the XML and
        > suspect the various additional http headers are not required unless
        > we want to compress the data.
        >
        > 2) Instantiating a server SOAP::Lite object within an _existing_
        > server framework by providing it with an XML document. This bit I
        > cant seem to fathom since all examples presume use of the bundled
        > Transport mechanisms.
        >
        > This is the sort of thing I have been trying ...
        >
        > $xml is the xml message received from the client
        >
        > my $s = new SOAP::Server;
        > $s->request( HTTP::Request->new($xml) );
        > $s->dispatch_to('/my/modules/dir/');
        > $s->handle;
        >
        > This doesnt work since SOAP::Server doesnt know what ->request()
        > method is. But it should explain what I'm trying to do.
        >
        > Any suggestions/comments appreciated.
        >
        > Many thanks,
        > Tom
        >
        >
        >
        > To unsubscribe from this group, send an email to:
        > soaplite-unsubscribe@y...
        >
        >
        >
        > Your use of Yahoo! Groups is subject to
        http://docs.yahoo.com/info/terms/
      Your message has been successfully submitted and would be delivered to recipients shortly.